获取参数化类型的.class?

时间:2019-06-28 09:07:08

标签: java generics

如果一个List想要获取该列表而不是List的类, 我做不到

event.currentTarget.value

我做不到

List.class

我要这样做的原因是我正在使用一个注释,除了生成文档的Class以外。我可以表达参数化的类。

任何提示

2 个答案:

答案 0 :(得分:1)

请记住,泛型是编译时构造的99%。泛型不会创建新的类/接口。 List(原始类型)和List<TennisBall>(参数化类型)都由相同的类List.class表示。 (并且类的实现类似地共享:LinkedListLinkedList<TennisBall>都由同一个类实现。)

您需要参考注释的文档,以查看要使用该工具进行泛型处理时要使用的泛型类型参数。

答案 1 :(得分:1)

泛型确保了编译时的类型安全性,但也避免了运行时的开销。因此,Java编译器会应用“类型擦除”,这意味着有关泛型的信息不会写入.class文件中。

我建议您从Baeldung阅读此article