Java反射机制
2021-04-07 01:25
标签:编译 基本原理 反射机制 访问 method field 基本 new etc 反射是Java的特征之一,是一种间接操作目标对象的机制,核心是JVM在运行的时候才动态加载类,并且对于任意一个类,都能够知道这个类的所有属性和方法,调用方法/访问属性,不需要提前在编译期知道运行的对象是谁,他允许运行中的Java程序获取类的信息,并且可以操作类或对象内部属性。程序中对象的类型一般都是在编译期就确定下来的,而当我们的程序在运行时,可能需要动态的加载一些类,这些类因为之前用不到,所以没有加载到jvm,这时,使用Java反射机制可以在运行期动态的创建对象并调用其属性,它是在运行时根据需要才加载。 在我们日常的编程中不知不觉已经习惯“使用”反射机制——在使用IDEA进行开发的时候,在对象名后加一个“.”就能够自动的获得该对象的所有属性和方法,这种功能可以说大大的遍历我们的开发过程。这种功能的实现依靠的就是反射机制。 利用java的反射机制可以很灵活的对加载到Java虚拟机中的类信息进行检测 首先介绍和反射相关的类: (1)Object-->getClass (2)任何数据类型(包括基本的数据类型)都有一个“静态”的class属性 (3)通过class类的静态方法:forName(String className),应用范围较广 Class对象的newInstance()方法——动态代理中实现动态生成代理类的关键 通过getConstructor()或getDeclareConstructor()方法获得构造器(Constructor)对象并调用其的newInstance()方法 参考博文: Java反射机制 标签:编译 基本原理 反射机制 访问 method field 基本 new etc 原文地址:https://www.cnblogs.com/infinity-zhang/p/13393797.htmlJava的反射机制
一、什么是反射
二、反射机制的作用
三、反射机制的基本原理
四、使用反射机制
获得Class
判断某个对象是否为某个类的实例
public native boolean isInstance(Object obj);
通过反射创造实例
String.class.newInstance()
String.class.getConstructor(String.class).newInstance("Test");
https://blog.csdn.net/haluoluo211/article/details/49516689
https://blog.csdn.net/a745233700/article/details/82893076