che sto cercando di fare qualcosa di simile in Java:C'è un modo per trovare il tipo di un parametro template (generico) in Java?
public static <T> T foo() {
return (T) bar(T);
}
public static Object bar(Class<?> klaz) {
return klaz.newInstance();
}
Ma il codice non compilato poiché non posso sostituire T per un Classe <>?.
Con una classe concreta, mi può chiamare bar come:
bar(ConcreteClass.class);
Ma lo stesso non funziona per T. vale a dire non c'è alcuna cosa come T.class
In C#, typeof lavori per entrambi i tipi di calcestruzzo e di modello. Quindi, la chiamata al bar sarebbe stata:
bar(typeof(T));
Ma non sono stato in grado di trovare nulla di simile in Java.
Mi manca qualcosa o Java non ha un modo per ottenere il tipo di parametro di un modello? E se Java non ha la funzione, ci sono soluzioni alternative?