首页 > 其他 > 详细

Class.forName调用时会加载对应类

时间:2020-12-24 21:22:03      阅读:39      评论:0      收藏:0      [点我收藏+]

//20201224
今天学习java类的反射机制的时候,讲到了forName()方法会加载类,在此记录一下细节

forName调用时发生了什么

  • 会加载类,如果类中有静态代码块,则会执行其内代码,但不会执行无参构造内部代码
  • 举例(类代码&调用forName代码):
//类
package testPackage;

public class User {
    static{
        System.out.println("User class has been load!");
    }

    public User(){
        System.out.println("constructor has been quote");
    }
}
/**
 * ===============================
 */
public static void main(String[] args) throws Exception {
        FileReader fr = new FileReader("src/reflection/classinfo.properties");
        Properties pro =  new Properties();
        pro.load(fr);
        fr.close();
        String mm = pro.getProperty("className");
//        System.out.println(mm);
        Class test = Class.forName(mm);
        User ss = new User();
    }
  • 配置文件内容(学习的时候顺便练了一下配置文件的读取)
className=testPackage.User
  • 执行输出如下:

技术分享图片

以上
希望对大家有所帮助

Class.forName调用时会加载对应类

原文:https://www.cnblogs.com/lavender-pansy/p/14186155.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!