Jest jeden użytek, który może wykorzystać Guava. Jak wiadomo, typy są tracone po kompilacji, ale jeśli typ jest spermied na poziomie klasy, to nie jest stracony po kompilacji i może zostać wyodrębniony przez odbicie. Wezwę kod, by wyodrębnić typ w minutę.
Edit ja nie wiem, czy kod jest jakiegokolwiek użytku, ale tutaj jest to
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);
}
}
}
Używam 'TypeToken' przez jakiś czas, ale nigdy nie doceniłem subtelności i sprytu. To jest naprawdę niesamowite – Ray