反射小结

反射

1在java中的反射机制是指在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法,
对于任意一个对象,都能够调用它的任意一个方法,这种动态获取信息以及动态调用对象方法的功能称为
java语言的反射机制。

java反射可以实现的功能
在运行时判断任意一个对象所属的类
在运行时构造任意一个类的对象
在运行时判断任意一个类所具有的方法和属性
在运行时调用任意一个对象的方法
生成动态代理
java程序中许多对象在运行时都会出现两种类型:(编译时类型)和(运行时类型)
编译时的类型由声明该对象时使用的类型决定,运行时类型由实际赋给该对象的类型
决定。如:Person p=new Student();
此时p的编译时类型为Person,运行时类型为Student

如果编译时根本无法预知该对象和类可能属于哪些类,程序只依靠运行时信息来发现
该对象和类的真实信息,此时就必须使用(反射)

java反射API介绍

Class类 反射的核心类,可以获取类的属性,方法等内容信息

下面3个类都在 java.lang.reflect包中
Field类 表示类的属性,可以获取和设置类中属性的值

Method类 表示类的方法,可以获取类中方法的信息,或者执行方法

Constructor类 表示类的构造方法

每个类被加载后,系统会为该类生成一个对应的Class对象,
通过该Class对象可以访问java虚拟机中的这个类,java程序中获得
Class对象通常有以下3种方式:

1 调用某个对象的getClass()方法
Peson p=new Person();
Class cla=p.getClass();

2调用某个类的class属性来获取该类对应的Class对象
Class cla=Person.class;
(需要在编译时就知道该类的名字)
(代码更安全,程序性能更高,此方法比较常用)

3使用Class类的forName((“类的全名”))静态方法
Class cla=Class。forName(“person”)错误的xx

Class cla=Class.forName("com.pb.jdbv.reflection.Person");正确

 

 

 

 

 

 

 

 

posted @ 2017-10-11 10:55  厉害了我的哥丶  阅读(88)  评论(0编辑  收藏  举报