文章目录
Class.forName
Class.forName(String className)和 Class.forName(String name, boolean initialize, ClassLoad loader)
直接上代码,用执行结果来辅助理解:
创建类ClassForName
package com.lyh.study.reflex;
/**
* Created by liuyunhui on 2020-03-06 11:46.
* description:
*/
public class ClassForName {
//静态代码块
static {
System.out.println("静态代码块---今天周五了呦");
}
//静态变量
public static String staticValue = defaultStaticValue();
//给静态变量赋值
private static String defaultStaticValue() {
System.out.println("给静态变量赋值---明天就周六了呦");
return "静态变量默认值";
}
}
使用Class.forName(String className)
package com.lyh.study.test;
/**
* Created by liuyunhui on 2019-05-20 10:23.
* description:
*/
public class Test {
public static void main(String[] args) {
try {
Class.forName("com.lyh.study.reflex.ClassForName");
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
}
结果如下,类进行了初始化:
使用Class.forName(String name, boolean initialize, ClassLoad loader)
package com.lyh.study.test;
/**
* Created by liuyunhui on 2019-05-20 10:23.
* description:
*/
public class Test {
public static void main(String[] args) {
try {
System.out.println("Class.forName(\"com.lyh.study.reflex.ClassForName\",false,Test.class.getClassLoader())执行结果:");
Class.forName("com.lyh.study.reflex.ClassForName",false,Test