Java 使用class.forName获取类

Java 使用class.forName获取类,java,reflection,Java,Reflection,请看下面这行: targetClass = Class.forName(className).newInstance().getClass(); 我的问题是他为什么调用newInstance().getClass() 写就够了吗 targetClass = Class.forName(className); ?调用newInstance().getClass()没有意义,因为它将产生与实例化它的类相同的实例 相反,它会创建一个额外的实例,该实例将立即被“删除”。如果类没有默认构造函数,那么即

请看下面这行:

targetClass = Class.forName(className).newInstance().getClass();
我的问题是他为什么调用newInstance().getClass()

写就够了吗

targetClass = Class.forName(className);

调用
newInstance().getClass()
没有意义,因为它将产生与实例化它的
类相同的
实例

相反,它会创建一个额外的实例,该实例将立即被“删除”。如果类没有默认构造函数,那么即使它也不会工作

T obj = targetClass.getConstructor().newInstance();
此外,实例化、初始化等的成本可能非常高。

是的

Class<T> targetClass = Class<T>.forName(className);

调用显示了javadoc中提到的问题。

是的,不需要创建新实例