繁体   English   中英

使用Class.forName获取类

[英]Getting class with Class.forName

看下面的这一行:

targetClass = Class.forName(className).newInstance().getClass();

我的问题是他为什么调用newInstance()。getClass();

写作是否足够

targetClass = Class.forName(className);

调用newInstance().getClass()是没有意义的,因为它将生成实例化它的相同Class实例。

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

此外,实例化,初始化等的成本可能是显着的。

是。

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

而对象创建更好地使用getConstructor。

T obj = targetClass.getConstructor().newInstance();

调用Class.newInstance展示了javadoc中提到的问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM