[英]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.