第8章Java的反射机制.ppt
《第8章Java的反射机制.ppt》由会员分享,可在线阅读,更多相关《第8章Java的反射机制.ppt(38页珍藏版)》请在优知文库上搜索。
1、Java的反射机制主要内容1.Class的基本概念以及创建方式的基本概念以及创建方式2.反射的基本概念反射的基本概念3.类的各个组成部分对应的反射类类的各个组成部分对应的反射类 Constructor Field Method4.反射在框架中的应用反射在框架中的应用反射的基础-ClassJava当中的类用来表示具有相同属性和方法的对象的结合,是当中的类用来表示具有相同属性和方法的对象的结合,是抽象的概念。对象是类创建的,同一个类的不同对象具有不抽象的概念。对象是类创建的,同一个类的不同对象具有不同的属性值。同的属性值。Java当中定义的所有类都属于同一类事物,可以用当中定义的所有类都属于同一类
2、事物,可以用Class来表来表示。示。对比理解:对比理解:不同的人可以用不同的人可以用Person类来表示。类来表示。人人-Person Java当中定义的不同类可以用当中定义的不同类可以用Class来表示。来表示。Java当中的类当中的类-ClassClass类的对象-字节码Class类的对象就是不同的类对应的字节码。类的对象就是不同的类对应的字节码。获取获取Class的对象的对象Person p1=new Person();Class class1=new Class()()三种方式:三种方式:(1)对象名对象名.getClass()Person p1=new Person();p1.ge
3、tClass();(2)类名类名.class Date.class(3)Class.forName()方法方法 (此方式用的较多此方式用的较多)Class.forName(“java.lang.String”);基本数据类型的Class对象Java当中的基本数据类型有:当中的基本数据类型有:boolean int short byte char long float 和和 double 它们也有各自的它们也有各自的Class对象。对象。例如:例如:int.class void 也有自己对应的也有自己对应的Class对象对象 void.class 基本数据类型对应的封装类有属性基本数据类型对应的
4、封装类有属性TYPETYPE,这个属性,这个属性代表了封装类所封装的基本数据类型的代表了封装类所封装的基本数据类型的ClassClass对象。对象。int.class=Integer.TYPEint.class=Integer.TYPE void.class=Void.TYPE void.class=Void.TYPE反射(Reflect)反射就是把反射就是把JavaJava类中的各个组成部分映射成相应的类中的各个组成部分映射成相应的JavaJava类。类。一个类的组成部分包括:属性、方法、构造方法、包等。这些一个类的组成部分包括:属性、方法、构造方法、包等。这些组成部分都会被映射成相应的类。
5、组成部分都会被映射成相应的类。Class类定义了一系列方法来获取类定义了一系列方法来获取java类的属性、方法、构造方类的属性、方法、构造方法、包等信息,这些信息都有相应的类来表示,分别是法、包等信息,这些信息都有相应的类来表示,分别是Field、Method、Constructor、Package等。等。注意:表示注意:表示javajava类组成部分的各种类位于类组成部分的各种类位于java.lang.reflectjava.lang.reflect包包中。中。Constructor类Constructor类用来描述类中所定义的构造方法。类用来描述类中所定义的构造方法。(1)得到类的所有构造
6、方法得到类的所有构造方法 Constructor constructors=Class.forName(“java.lang.String”).getConstructors();(2)得到类中某个具体的构造方法得到类中某个具体的构造方法,在在getConstructor中传入参数类型所对应的中传入参数类型所对应的字节码字节码 Constructor constructor=Class.forName(“java.lang.String”).getConstructor(String.class)使用使用Constructor类的目的是用来创建相应类的对象类的目的是用来创建相应类的对象 正常情
7、况正常情况 String str=new String(“hello”);反射情况反射情况 Constructor con=String.class.getConstructor(String.class)String str=(String)con.newInstance(“hello”);Class.newInstance()通过反射方式创建对象的过程通过反射方式创建对象的过程 Class-Constructor-某个类的对象某个类的对象只有当要只有当要用某个类的无参构造方法创建该类对象时用某个类的无参构造方法创建该类对象时,可以,可以省略创建省略创建ConstructorConstruc
8、tor类对象的这个过程。类对象的这个过程。Date d=(Date)Class.forName(“java.util.Date”).newInstance();注意:注意:javajava运行环境的缓存中保存了类的无参构造方法所对应运行环境的缓存中保存了类的无参构造方法所对应的的ConstrutorConstrutor对象。对象。见源文件:见源文件:ReflectTest.javaReflectTest.javaField类 Field类用来表示类中的属性类用来表示类中的属性(字段字段)。(1)Class.getFields():(1)Class.getFields():得到得到ClassCl
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java 反射 机制