存在以下情况:
给定一个类,其中包含一个通用字段。是否可以在运行时使用T
实例实例化字段?
class Root<T>{
T var;
Root(){
//instantiate var with an instance of T here
}
}
最佳答案
如果您有一个扩展Root<T>
并在其extends
子句中设置type参数的类,则可以使用getGenericSuperclass()对其进行挖掘。例如,Guice uses this approach为注入的类提供类型参数信息。
否则,最好的选择是传递Class<T>
实例作为构造函数参数并使用它。这也将导致代码更简单,尽管该类的每个实例都需要更多样板。
关于java - Java反射泛型-通过在编译时传递参数进行转换?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6565530/