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中提到的问题。是的,不需要创建新实例