在Java中,Class.forName()和 Class.forName().newInstance() 在动态类加载中起着至关重要的作用。然而,它们有不同的用途。
Class.forName() 方法将完全限定的类名作为字符串,并返回与该类关联的 Class 对象。它通过使用类加载器来定位类文件并读取其内容来实现此目的。 Class.forName() 不会实例化该类。它只是提供对其元数据和信息的访问。
另一方面,Class.forName().newInstance() 方法创建一个由 Class.forName() 返回的 Class 对象表示的类的新实例。它通过调用类的默认构造函数来实现此目的。
让我们考虑一个示例来说明差异:
package test; public class Demo { public Demo() { System.out.println("Hi!"); } public static void main(String[] args) throws Exception { Class clazz = Class.forName("test.Demo"); Demo demo = (Demo) clazz.newInstance(); } }
在此示例中:
Class.forName() 和 Class.forName() 之间的主要区别.newInstance() 是 Class.forName() 只加载类,而 Class.forName().newInstance() 不仅加载类而且还创建该类的实例class.
Class.forName() 和 Class.forName().newInstance() 常用于需要动态类加载的场景。示例包括:
以上是Java 中 `Class.forName()` 和 `Class.forName().newInstance()` 之间的主要区别是什么?的详细内容。更多信息请关注PHP中文网其他相关文章!