我如何从通用类型中获取 Class
How can i get Class from Generic Type
我不知道怎么解释,我有一个class类似
public class MyClass<T>{
private Class <?> type;
public MyClass(string className){
this.type = Class.forName(className);
Field[] fields = type.getDeclaredFields();//why i need type
}
}
然后我创建一个对象 class:
MyClass<Person> persons = new MyClass<>("packageName.Person");
有没有办法像这样
MyClass<Person> persons = new MyClass<>();
你不能这样做,因为 Java 中泛型的实现方式。您经常可以看到传递了一个 Class<T> clazz
参数来解决它。
其实你传一个String
是没有意义的。改为传入 Person.class
,这样您就不需要 Class.forName()
.
我不知道怎么解释,我有一个class类似
public class MyClass<T>{
private Class <?> type;
public MyClass(string className){
this.type = Class.forName(className);
Field[] fields = type.getDeclaredFields();//why i need type
}
}
然后我创建一个对象 class:
MyClass<Person> persons = new MyClass<>("packageName.Person");
有没有办法像这样
MyClass<Person> persons = new MyClass<>();
你不能这样做,因为 Java 中泛型的实现方式。您经常可以看到传递了一个 Class<T> clazz
参数来解决它。
其实你传一个String
是没有意义的。改为传入 Person.class
,这样您就不需要 Class.forName()
.