我知道从java类中获取类名可以做MyClass.class,但我不能在参数化类上这样做。例如,我想做ParametrizedClass<MyClass>.class。有人知道这是否可能吗?我想从参数化类中获取类生成Swagger文档。
MyClass.class
ParametrizedClass<MyClass>.class
fcy6dtqo1#
首先,ParameterizedClass<MyClass>.class无法编译...但我们假设它会...然后你会发现一个令人惊讶的事实ParameterizedClass<MyClass>.class.equals( ParameterizedClass<String>.class )永远都是真的事实上,甚至ParameterizedClass<MyClass>.class == ParameterizedClass<String>.class永远都是真的这意味着你可以只使用ParameterizedClass.class来获取你的类的Class对象,然后编译...TypeParameter在编译期间/之后将被“擦除”的原因。它不是“.class”文件中代码的一部分。
ParameterizedClass<MyClass>.class
ParameterizedClass<MyClass>.class.equals( ParameterizedClass<String>.class )
ParameterizedClass<MyClass>.class == ParameterizedClass<String>.class
ParameterizedClass.class
Class
1条答案
按热度按时间fcy6dtqo1#
首先,
ParameterizedClass<MyClass>.class
无法编译...但我们假设它会...
然后你会发现一个令人惊讶的事实
ParameterizedClass<MyClass>.class.equals( ParameterizedClass<String>.class )
永远都是真的事实上,甚至
ParameterizedClass<MyClass>.class == ParameterizedClass<String>.class
永远都是真的
这意味着你可以只使用
ParameterizedClass.class
来获取你的类的Class
对象,然后编译...TypeParameter在编译期间/之后将被“擦除”的原因。它不是“.class”文件中代码的一部分。