Kim*_*Kim 1 java generics runtime
Class clazz = parameter.getParameterType();
Run Code Online (Sandbox Code Playgroud)
在这里clazz,我可以确定这是Optional<T>类型类。问题是我怎么能得到这个T?我想知道这是否是运行时中的Stringor Long或Integeror。
好的,我想我没有说清楚。我通过反射得到了一个方法参数,
public String abc(Optional<String> ttt, Optional<Integer> bbb) {
return;
}
Run Code Online (Sandbox Code Playgroud)
所以现在我有了ttt和bbb的类,并且我确定这是Optional<T>.class,但是我可以很T容易地得到那个。
你不能 在运行时,Java甚至都不知道实际的泛型类型。
如果Optional是现在,你可以做optional.get().getClass(),但如果可选的缺席,是绝对没有办法知道它是否是一个Optional<String>,Optional<Integer>或Optional<NuclearMissile>。
| 归档时间: |
|
| 查看次数: |
740 次 |
| 最近记录: |