复习反射机制:

1.Class 是一个类
2.对象照镜子后可以得到的信息:某个类的数据成员名、方法和构造器
   某个类到底实现了哪些接口。
3.对于每个类而言,JRE都为其保留一个不变的Class类型的对象。
一个Class对象包含了特定某个累的有关信息
4.Class对象只能由系统建立对象
一个类在JVM中只会有一个Class实例
每个类的实例都会记得自己是由哪个class实例所产生
5.获取Class对象的方式:
1)通过类的class属性获取。该方法最为安全可靠,程序性能更高。
Class class1 = String.class;
2)通过对对象的getClass()方法获取
Class class2 = "全类名".getClass();
3) 通过Class对象的forName()静态方法获取forName()参数,但可能抛出ClassNotFoundException异常
Class class3 = Class.forName("java.lang,String");


Javabean中经常定义有参和无参的构造器,都是留给反射用的。
例:
public void testNewInstance() throws ClassNotFoundException, ReflectiveOperationException, ReflectiveOperationException{
String className = " reflectionTest.Person";
Class clazz = Class.forName(className);
//利用Class对象的newInstance()方法来创建类的一个对象
Object obj= clazz.newInstance();
System.out.println(obj);
}
实际调用的是类的那个无参构造器!

一般地,一个类若声明了带参数的构造器,也要声明一个无参数的构造器。

反射:Reflection是Java被视为动态语言的关键,反射机制允许程序在执行期借助于Reflection API取得任何类的内部信息
并能直接操作任意对象的内部属性及方法


Java反射机制主要提供了下面几个功能:
在运行时构造任意一个类的对象
在运行时获取任意一个类所具有的成员变量和方法(属性)
生成动态代理


获取方法:calzz.getDeclaredMethod();
获取指定方法:clazz.getDeclareMethod(String name,Classs<?>... parameterTypes);  
 //name:方法名                parameterT:方法的参数类型(使用Class来描述的列表)
执行方法:
Object obj = clazz.newInstance();
method.invoke(obj,args);
//obj:执行哪个对象的方法?
   args:执行方法时需要传入的参数


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值