Java中的反射机制和动态性以及javaBean的自省技术

Java中的反射机制和动态性以及javaBean的自省技术

反射机制:

java中,在运行过程中去调用一个编译时完全不知道属性方法,这种动态的调用方式叫做反射机制。(自己写的)

 

   简单的写就是:可以让java程序在运行过程中动态的去调用类的属性、方法(包括一般方法和构造方法)。

 

Java反射机制在javaAPI中的类是 java.lang.reflect.

 

重点:

获取对象的属性和方法

获取方法:(一般方法)

获取方法的方法有:下列方法中的返回的参数类型为Method类型或数组类型

 

(不带参数)

getDeclareMethods() 获取方法(包括接口中的方法不包含继承中的方法)

getMethods()获取方法(包括继承和接口中的方法—为所有的方法)

 

(带参数类型)

getDeclareMethods(String str,class [] args) 其中class [] args表示返回方法中所带的参数类型

getMethods(String str,class [] args)

 

获取构造方法:返回值类型:Constructor 数值或者数组

用法同上。

getDeclareConstructors () 

getConstructors ()

 

newInstance(Object ..initargs)  //通过参数来构造类的实例

 

获取属性:

获取方法的方法有:下列方法中的返回的参数类型为Field类型或数组类型

(不带参数)

getDeclareFields() 获取属性(包括接口中的方法不包含继承中的属性)

getFields ()获取属性(包括继承和接口中的方法—为所有的属性)

 

(带参数类型)

getDeclareFields(name) 

 

java中的动态调用

动态调用属性,修改属性

中间用对象.setAccessible()方法来设置属性的访问权限为可以访问即使是private属性也可以访问,但是只是针对去此对象,而其他对象一样是不可以访问的。

通过setobj a,obj b)将属性a改成属性bget(obj a)方法来对属性进行修改。

 

动态调用方法:(注:动态代理也是AOP的)

通过特定的方法名获取得到method对象,通过method对象来调用invoke(obj,参数);来调用相应的obj对象中特定的方法。

 

Method类中关键方法:

Object invoke (Object obj ,Object .. args) //该方法能够调用obj实例的方法,方法参数为argsinvoke方法可以动态的调用任何类的任何方法,并返回方法的返回值。

 

 

还有就是操作动态数组/多维动态数组

中间用到是reflect包中自带的一个array数组

 

javaBean自省技术
javaBean 具有的自省机制可以在不知道javaBean都有哪些属性的情况下,设置他们的值。。

自省机制的核心是反射机制。

javaBean的自省机制主要由Introspector实现,该接口中提供了关键的方法。

 

 

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值