java 中的class.forName()是什么意思
Class.forName:返回与给定的字符串名称相关联类或接口的Class对象。
Class.forName是一个静态方法,同样可以用来加载类。该方法有两种形式:Class.forName(String name, boolean initialize, ClassLoader loader)和 Class.forName(String className)。第一种形式的参数 name表示的是类的全名;initialize表示是否初始化类;loader表示加载时使用的类加载器。第二种形式则相当于设置了参数 initialize的值为 true,loader的值为当前类的类加载器。
如下图所示,java类型的属性名称叫name,可以通过forName的方法获取到这个类的实例,从而获取到类里面的属性。
扩展资料:
注意:
在指定类给 class.forName() 方法后,如果找不到指定的类,会抛出ClassNotFoundException 异常。Class 的静态 forName() 方法有两个版本,上面的代码是只指定类名称的版本,而另一个版本可以让你指定类名称、加载时是否运行静态区块、指定类加载器:
Static Class forName(String name, boolean initialize, ClassLoader loader)
默认在加载类的时候,如果类中有定义静态区块则会运行它。你可以使用 class.forName() 的第二个版本,将 initialize 设定为 false,这样在加载类时并不会立即运行静态区块,而会在使用类建立对象时才运行静态区块。为了印证,可以先设计一个测试类:
package cn.sunzn.demo;public class TestClass { static {
System.out.println("[运行静态区块]");
}
}
参考资料:百度百科-JAVA反射机制