首页 > 编程知识 正文

java反射,java反射实现原理

时间:2023-05-06 19:36:22 阅读:31989 作者:4123

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对象是否对应于数组对象。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。