bsuart Asked:2020-05-04 03:24:27 +0000 UTC2020-05-04 03:24:27 +0000 UTC 2020-05-04 03:24:27 +0000 UTC 参数化泛型(Java 中的反射) 772 public T getById(int id) { return entityManager.find(T.class, id); } 错误:T 无法从类型变量中进行选择。成立: ReflectionUtils.getGenericParameterClass(..) - не работает 问题是如何传递参数化的类对象? java 1 个回答 Voted Best Answer gt22 2020-05-04T04:52:57Z2020-05-04T04:52:57Z 泛型参数在运行时是不存在的,编译后被替换为最简单的类型(即<T>替换为Object, 替换为 Number 等),获取类,最简单的就是喂它进入构造函数,例如 public class MyClass<T extends Number> { private final Class<T> clazz; public MyClass(Class<T> clazz) { this.clazz = clazz; } 然后,您可以通过让编译器确定 Generic new MyClass<>(Integer.class);等同于来创建它,之后可以使用new MyClass<Integer>(Integer.class);该变量代替.clazzT.class
泛型参数在运行时是不存在的,编译后被替换为最简单的类型(即
<T>替换为Object, 替换为 Number 等),获取类,最简单的就是喂它进入构造函数,例如然后,您可以通过让编译器确定 Generic
new MyClass<>(Integer.class);等同于来创建它,之后可以使用new MyClass<Integer>(Integer.class);该变量代替.clazzT.class