C'è un modo per evitare la cancellazione del tipo e ottenere l'accesso a un parametro di tipo?Evitare la cancellazione del tipo Java
public class Foo<T extends Enum<?> & Bar> {
public Foo() {
// access the template class here?
// i.e. :
baz(T.class); // obviously doesn't work
}
private void baz(Class<T> qux) {
// do stuff like
T[] constants = qux.getEnumConstants();
...
}
}
ho bisogno di sapere su T
, e fare le cose con esso. E 'possibile, e in caso affermativo, come può essere fatto senza passando nella classe nel costruttore o ovunque oltre il parametro?
EDIT: Lo scopo principale di questa domanda è quello di scoprire se c'è alcun modo pratico intorno tipo cancellazione.
+1 Sì - Questa è un'altra alternativa basata sulla riflessione se si preferisce la sottoclasse per passare l'oggetto 'Class'. –