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反射机制主要应用在对灵活性和扩展性要求很高的系统框架上,普通程序不建议使用。

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

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

 

 

 

 

你可能感兴趣的:(Android,java)