本文主要是介绍class.forName(String name).newInstance()的用法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
class.forName()
public static Class<?> forName(String className) throws ClassNotFoundException
- 返回与带有给定字符串名的类或接口相关联的
Class
对象。 - 调用 forName("X") 将导致命名为 X 的类被初始化。
public T newInstance() throws InstantiationException, IllegalAccessException
- 创建此 Class 对象所表示的类的一个新实例。如同用一个带有一个空参数列表的
new
表达式实例化该类。如果该类尚未初始化,则初始化这个类。注意,此方法传播 null 构造方法所抛出的任何异常,包括已检查的异常。使用此方法可以有效地绕过编译时的异常检查,而在其他情况下编译器都会执行该检查。
Constructor.newInstance
方法将该构造方法所抛出的任何异常包装在一个(已检查的)InvocationTargetException
中,从而避免了这一问题。 -
-
- 返回:
- 此对象所表示的类的一个新分配的实例。
- newInstance实际上是把new这个方式分解为两步,即,首先调用class的加载方法加载某个类,然后实例化。这样分步的好处是显而易见的。我们可以在调用class的静态加载方法forName时获得更好的灵活性,提供给了我们降耦的手段。 [补充:]newInstance: 弱类型。低效率。只能调用无参构造。new: 强类型。相对高效。能调用任何public构造。
这篇关于class.forName(String name).newInstance()的用法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!