C'è un uso che Guava potrebbe usare. Come sapete, i tipi vengono persi dopo la compilazione, ma se il tipo è speficato a livello di classe, non è perso dopo la compilazione e può essere estratto per riflessione. Inserirò il codice per estrarre il tipo in un minuto.
Edit non so se il codice è di alcuna utilità, ma qui è
public class Reflect {
public static void main(String[] args) {
Super<String> aStringSuper = new Super<String>() {};
aStringSuper.method();
Super<List<Integer>> aListSuper = new Super<List<Integer>>() {};
aListSuper.method();
}
}
class Super<T> {
public void method() {
Type genericSuperclass = this.getClass().getGenericSuperclass();
ParameterizedType parameterizedType = (ParameterizedType) genericSuperclass;
for(Type type : parameterizedType.getActualTypeArguments()) {
System.out.println(type);
}
}
}
Ho usato 'TypeToken' per un po 'di tempo, ma non ho mai apprezzato la sottigliezza e l'intelligenza. È davvero fantastico – Ray