我如何从通用类型中获取 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().