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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 孔德智 中级黑马   /  2012-9-21 13:55  /  1385 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 孔德智 于 2012-9-22 11:31 编辑

刚刚接触反射,他们之间是什么关系,帮举下例?
Class cls1=new Date().getClass();
Class cls2=Date.class;
Class cls3=Class.forName("java.util.Date");
类似这种我都懂了,字节码包含了一个类的所有信息

评分

参与人数 1技术分 +1 收起 理由
刘芮铭 + 1 赞一个!

查看全部评分

3 个回复

倒序浏览

回帖奖励 +2

这个还真不知道
回复 使用道具 举报
对于每种类型的对象,你可以在运行时获得它的成员和类型信息,不过你得借助于JVM为你实例化的一个不可修改的java.lang.Class对象。
要获取该对象有三种方法:.class语法是其中一种
1. 通过对象的getClass()方法,前提是对象是继承Objec的引用类型t,因为getClass()是Object的方法。
如:enum E{A, B};
        Class c = A.getClass();
而下面的用法是错误的
boolean b;
Class c = b.getClass();  // compile-time error



2.使用.class语法,此时只需知道类型的名字即可,不必有一个实例对象

boolean b;
Class c = b.getClass();   // compile-time error

Class c = boolean.class;  // correct


3.使用Class.forName(),这种方法对引用类型和基本类型都适用
Class cDoubleArray = Class.forName("[D");       // double[].class
Class cStringArray = Class.forName("[[Ljava.lang.String;");  // [][].class


评分

参与人数 1技术分 +1 收起 理由
刘芮铭 + 1 赞一个!

查看全部评分

回复 使用道具 举报
自己研究了半天明白些了  Class代表着Java类,它的实例对象就是字节码,class就是定义类的关键字,比如定义一个Person类,class Person,而Person实例对象就是某个人。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马