黑马程序员技术交流社区

标题: 反射-获取class对象 [打印本页]

作者: JJJD    时间: 2015-6-22 23:35
标题: 反射-获取class对象
获得Class对象3种方式:


        a.调用某个类的class属性获取Class对象,
        如Date.class会返回Date类对应的Class对象(其实就是得到一个类的一份字节码文件);
        b.使用Class类的forName(String className)静态方法,className表示全限定名;
        如String的全限定名:java.lang.String;
        c.调用某个对象的getClass()方法。该方法属于Object类;
        Class<?> clz = new Date().getClass();
最常用的是利用属性的方。


作者: world.net    时间: 2015-6-23 00:41
1.Class c=Class.forName(String className);根据完整类名获得,jvm虚拟机中之前有没有加载该字节码文件都可以
2.Class c=className.Class;根据类名获得;jvm虚拟机加载了该字节码文件,只是去查询
3.Class c=对象.getClass();根据对象获得;jvm加载了该字节码文件,并且持有该类的对象实例。
第一种方法较为常用,因为经常并不知道所要加载的类名和对象,只是传进了一个字符串参数。
作者: JJJD    时间: 2015-6-23 11:41
world.net 发表于 2015-6-23 00:41
1.Class c=Class.forName(String className);根据完整类名获得,jvm虚拟机中之前有没有加载该字节码文件都可 ...

你的总结看着好清晰,比我的好太多啦!
作者: 爱李萝卜    时间: 2015-6-23 14:08
world.net 发表于 2015-6-23 00:41
1.Class c=Class.forName(String className);根据完整类名获得,jvm虚拟机中之前有没有加载该字节码文件都可 ...

总结的很好
作者: heima591046495    时间: 2015-6-23 17:58
还是不懂反射的作用是什么,,有什么好处,,具体怎么用..
作者: hoop.zeng    时间: 2015-6-23 21:41
world.net 发表于 2015-6-23 00:41
1.Class c=Class.forName(String className);根据完整类名获得,jvm虚拟机中之前有没有加载该字节码文件都可 ...

总结的很好,学习了




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