首页 > 编程知识 正文

Java反射机制的原理和用途,java反射机制的作用

时间:2023-05-04 21:43:11 阅读:15421 作者:617

一个,反射是什么(反射是框架设计的灵魂) ) ) )。

1,JAVA反射机制正在执行中

任何一个类都可以知道该类的所有属性和方法;

对于任何对象,都可以调用其方法和属性之一。

这种动态检索的信息以及动态调用对象的方法的功能称为java语言的反射机制。

2、反射提供的功能:

在执行时判断任意一个对象所属的类

在运行时构建任意类的对象

在运行时确定其中一个类具有的成员变量和方法

在运行时调用任何对象的方法

要解剖类,必须首先获取该类的字节码文件对象(class )。 解剖时使用Class类的方法。 因此,首先获取与每个字节码文件对应的Class类型的对象。

3,关于class对象和此class类

Class对象的来源是将Class文件导入内存并为其创建Class对象

4,class类:表示一个类,是Java反射的起源和入口

它用于获取有关类的各种信息,并提供了获取类信息的方法

Class类从Object类继承

Class类是所有类通用的图形

每个类都有自己的对象,同时每个类也被视为一个对象,有一个通用的图形Class,存储类的结构信息,并通过类的名称、属性、方法、构造方法、父类和接口等适当的方法检索适当的信息

Class类的实例表示正在运行的Java APP应用程序中的类和接口。 也就是说,jvm具有n个或更多实例,每个类都有其Class对象。 (包括基本数据类型)

Class没有构建公共的方法。 加载类后,类对象由Java虚拟机自动生成,并通过调用类加载器的defineClass方法自动生成。 也就是说,我们不需要自己处理创建,JVM已经为我们创建了。

没有公共机制。 方法一共64个太多了。

5 )反射使用场景

因为在Java编码过程中知道类和对象的具体信息,所以在这种情况下直接处理类和对象即可,无需反射

如果不知道类或对象的具体信息,则必须使用反射来实现

例如,必须将类的名称放在XML文件中,将属性和属性值放在XML文件中,在运行时读取XML文件,并动态获取类的信息

在编译时,我们完全不知道该对象或类可能属于哪个类。 程序只根据运行时信息找到该对象和类的真实信息

第二种方法是获取反射门户(class对象)

操作反射,必须先拿到反射的入口

1,通过Class.forName ('所有类名') )

try {

classperclazz=class.forname (reflect _ fans he.person );

system.out.println(Perclazz;

}catch(classnotfoundexceptione ) )

e .打印堆栈跟踪(;

}

2,类名. class

Class perClazz2=Person.class;

3,对象. getClass ()。

人员人员=新人员(;

Class perClazz3=person.getClass (;

三.通过反射入口对象(class )获取类的各种信息

一个类的反射门户class对象可以获取类的所有信息

示例1:perClazz.getMethods ()获取所有此类公共方法(父类的、实现接口的、自己的) ) )。

Class perClazz=null;

try {

perclazz=class.forname (reflect _ fans he.person );

}catch(classnotfoundexceptione ) )

e .打印堆栈跟踪(;

}

method [ ] methods=perclazz.get methods (;

//遍历所有方法

方法方法:方法{

system.out.println(method );

}

}

示例2 :获取所有结构方法

示例3 :获取父类

例4 )获取当前类(仅限本类)的所有方法和属性。 包括私人生活

重要信息:可以检索当前类的对象,并从对象中调用类的方法

四.通过反射获取对象实例,操作对象

1,class.newInstance (),然后用力转动模具,即可操作对象。 主要调用方法。

2、操作属性,可以操作类中的公共属性和私有属性

如果属性为private,则通常不允许从外部操作属性值。 在此,可以使用Field类的setAccessible(true )方法临时打开操作权限

调用方法也同样可以调用私有方法。 null是因为此方法没有参数

五.在程序运行过程中动态确定要调用的类和方法

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