Java:如何在运行时获取通用类型?

Kim*_*Kim 1 java generics runtime

Class clazz = parameter.getParameterType();
Run Code Online (Sandbox Code Playgroud)

在这里clazz,我可以确定这是Optional<T>类型类。问题是我怎么能得到这个T?我想知道这是否是运行时中的Stringor LongIntegeror。

好的,我想我没有说清楚。我通过反射得到了一个方法参数,

public String abc(Optional<String> ttt, Optional<Integer> bbb) {
    return;
}
Run Code Online (Sandbox Code Playgroud)

所以现在我有了ttt和bbb的类,并且我确定这是Optional<T>.class,但是我可以很T容易地得到那个。

Lou*_*man 5

不能 在运行时,Java甚至都不知道实际的泛型类型。

如果Optional是现在,你可以做optional.get().getClass(),但如果可选的缺席,是绝对没有办法知道它是否是一个Optional<String>Optional<Integer>Optional<NuclearMissile>