黑马程序员技术交流社区

标题: 关于Class.forName的疑问 [打印本页]

作者: 下雨天    时间: 2013-7-19 15:20
标题: 关于Class.forName的疑问
本帖最后由 杨兴庭 于 2013-7-21 19:09 编辑

Class c1=Person.class     和     Class c2=Class.forName("Person")
这两种方法都是获取Person类的字节码,第一个很好理解,但是第二个的存在有什么特殊的意义呢,既然已经知道类名了 直接用第一种不就可以了吗?
作者: wedge    时间: 2013-7-19 15:30
你好,其实它们还是有一定的区别的。
Class.forName与类名.class都会导致类的加载,但是它们是有区别的:
Class.forName可导致类的静态初始化,但类名.class只会加载类,不会执行静态初始化(有父类的话先加载父类的)
作者: 王靖远    时间: 2013-7-19 15:35
Class c2=Class.forName("Person")
这种方法还是比较常用的。这个参数可以写在配置文件里。在配置文件里写什么类。就加载什么类。就不要修改代码了




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2