JVA反射机制
1定义:
主要以程序能够访问、检测并修改其自身状态和行为的能力,能够基于自身行为的状态和结果,调整或修改与APP应用程序描述的行为的状态相关的含义。
反射是一个功能强大的java工具,使您可以轻松编写灵活的代码,以便在组件之间不链接源代码的情况下重新运行运行时程序集。 但是,如果弄错反射的使用方法的话会增加成本!
2 .作用
A:反编译:class--.java
通过B:反射机制访问java对象的属性、方法、生成方法等
这样看起来很容易理解,下面我们来具体看看实现这些功能的方法吧。
有三种方法可以获取Class对象。
(1)通过Object系的getClass ) )方法。 例如:
Class c1=new String (' ' ).getClass );
(2).Class类静态方法——forName ) )实现:
classC2=class.forname(myobject );
)3)如果. t是预定义的类型,则在java中,其. class文件名: T.class表示与之匹配的class对象。 示例:
Class c3=Manager.class;
Class c4=int.class;
Class c5=Double[].class;
4.Class类有以下重要方法:
a.getName () )
Class对象描述特定类的特定属性。 此方法是返回String格式类的简要说明。 由于历史原因,数组的Class对象
调用此方法会导致奇怪的结果。
b .新实例() )。
方法可以基于Class对象生成相应类的实例。 需要强调的是,它调用了这种缺省的构建方法。 例如:
MyObject x=new MyObject (;
MyObject y=x.getClass ().newInstance );
c.getClassLoader () )
返回与Class对象对应的类的类加载器。
d.getComponentType (
该方法可以在数组对象的Class对象中获得与该数组的构成要素对应的对象的Class对象。 例如:
int [ ] ints=new int [ ] { 1,2,3 };
Class class1=ints.getClass (;
class class2=class1. getcomponenttype (;
这里得到的Class2对象应该与名为int的基本类型的class对象相对应。
e.getSuperClass (
返回对应于子类的直接父类的Class对象。
f.isArray () )。
确定此Class对象是否对应于数组对象。