java反射作用与意义

1、反射的应用场合:在编译时根本无法知道该对象或类可能属于哪些类,程序只依靠运行时信息来发现该对象和类的真实信息.

 

2、反射的作用:通过反射可以使程序代码访问装载到JVM 中的类的内部信息

获取已装载类的成员变量信息

获取已装载类的方法

获取已装载类的构造方法信息

 

 

常用方法:

getName()获得类的完整名字

getPackage()获取此类所属的包

getSuperclass()获得此类的父类对应的Class对象

 

getField(String name)获得类的指定属性

 

 

getMethods()获得类的public类型的方法

getMethod (String name,Class [] args)获得类的指定方法

 

 

每个Method对象对应一个方法,获得Method对象后,可以调用其invoke() 来调用对应方法

Object invoke(Object obj,Object [] args):obj代表当前方法所属的对象的名字,args代表当前方法的参数列表,返回值Object是当前方法的返回值,即执行当前方法的结果。

 

 

反射的缺点

性能问题

使用反射基本上是一种解释操作,用于字段和方法接入时要远慢于直接代码。因此Java反射机制主要应用在对灵活性和扩展性要求很高的系统框架上,普通程序不建议使用。

使用反射会模糊程序内部逻辑

程序人员希望在源代码中看到程序的逻辑,反射等绕过了源代码的技术,因而会带来维护问题。反射代码比相应的直接代码更复杂。

 

 

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值