标签:基本数据类型 数组 获取 运用 构造器 ring private 类加载器 基本
Java中的反射机制是Java语言的一个很重要的特性,是Java “动态性” 的重要体现。
Java反射机制让我们在程序运行状态中,对于任意一个类,都能知道这个类的所有属性和方法;对于任意一个对象,都能调用他的任意一个方法。这种动态获取属性以及动态调用对象方法的功能就是“Java的反射机制”。
在使用一个类之前必须先加载它,而当虚拟机加载完一个类后,就会在方法区创建一个这个类对应的class对象(一个类只有一个class对象),这个对象包含了类完整的结构信息。这个对象就像一面镜子,通过他可以“看到”整个类的结构,因此很形象的被称为“反射”。“class对象”就是反射机制的核心。
Class类实现反射(Reflection)的基础,任何想实现动态加载、运行的类都必须先获得其相应的Class对象。
java.lang.Calss类十分特殊,它表示java中的所有类型(类、接口、枚举、注解、数组、原始数据类型(基本数据类型)以及void)
Class类没有公共的构造器,Class对象由虚拟机自行创建。
1.运用 Class.froName(包名+类名); (常用)
2.运用 .class 语法
3.运用 getClass()方法
1.动态加载类,动态获取类的信息(属性、方法、构造器等)
2.动态构造对象
3.动态调用类和对象的方法
4.动态调用及处理属性
5.获取泛型信息
6.处理注解
Class类 代表类的结构信息
Method类 代表方法的结构信息
Field类 代表属性的结构信息
Construction类 代表构造器的结构信息
Annotation类 代表注解的结构信息
1.getClassLoader() 返回类的类加载器。
2.getName() 返回class对象表示的实体的名称(包含包名)
3.getSimpleName() 返回class对象表示的实体的简单名称(不含包名)
4.newInstance() 创建此class对象表示的类的新对象。
获取属性(字段):
1.getField(String name) 返回一个 Field对象,反射class对象表示的类或接口的指定公共字段。
2.getFields() 返回一个Field数组对象,反射class对象表示的类或接口的所有可访问的公共字段 。
3.getDeclaredField(String name) 返回一个 Field对象,它反射此class对象表示的类或接口中指定的声明字段。
4.getDeclaredFields() 返回一个Field数组对象反射此class对象表示的类或接口中声明的所有字段。
获取方法:
1.getMethod(String name, 类<?>... 参数(列表)类型)
返回一个 Method对象,它反射此表示的类或接口的指定公共方法。
2.getMethods() 返回一个Method对象数组 反射class对象表示的类或接口中所有公共方法,包括那些由类或接口和那些从父类和父接口继承的方法。
3.getDeclaredMethod(String name, 类<?>... 参数(列表)类型)
返回一个 Method对象,它反射此表示的类或接口中声明的指定方法。
4.getDeclaredMethods()
返回一个Method对象数组 反射class对象表示的类或接口中声明的所有方法,包括公共,受保护,默认(包)访问和私有方法,但不包括继承的方法。
1.getName() 返回此 Field对象表示的字段的名称。
2.getType() 返回此 Field对象表示的字段的类型(class)
3.get(Object obj) 返回此Field对象所表示的字段的值 。
4.set(Object obj, Object value)
将指定对象参数上的此 Field对象表示的字段设置为指定的新值。
set方法无法直接访问private属性,需要“禁用安全检查”,即setAcceessible(true)。
5.getModifiers() 以整数形式(int)返回由该 Field对象表示的字段的Java语言修饰符
1.getName() 返回由此Method对象表示的方法的名称
2.getReturnType() 返回一个class对象,表示Method对象表示的方法的返回值类型。
3.getParameterTypes()
返回一个class对象的数组, 以声明顺序表示Method对象表示的方法的形式参数类型。
4.getModifiers() 返回Method对象表示的方法的修饰符
5.invoke(Object obj, Object... args) args 参数列表
调用指定对象的Method对象表示的方法 args为实参
标签:基本数据类型 数组 获取 运用 构造器 ring private 类加载器 基本
原文地址:https://www.cnblogs.com/Arvin66-lyh/p/10780146.html