A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© JJJD 中级黑马   /  2015-6-22 23:35  /  458 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

获得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();
最常用的是利用属性的方。

5 个回复

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

你的总结看着好清晰,比我的好太多啦!
回复 使用道具 举报
world.net 发表于 2015-6-23 00:41
1.Class c=Class.forName(String className);根据完整类名获得,jvm虚拟机中之前有没有加载该字节码文件都可 ...

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

总结的很好,学习了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马