From 2968ebbb18a883269d13a489c422623f17c02f42 Mon Sep 17 00:00:00 2001 From: Omooo <869759698@qq.com> Date: Tue, 1 Jan 2019 10:34:17 +0800 Subject: [PATCH] complete Reflect --- blogs/反射.md | 467 ++++++++++++++++++++++++++++++++++++++++++++++ images/反射.png | Bin 0 -> 57113 bytes 2 files changed, 467 insertions(+) create mode 100644 blogs/反射.md create mode 100644 images/反射.png diff --git a/blogs/反射.md b/blogs/反射.md new file mode 100644 index 0000000..8b0ac50 --- /dev/null +++ b/blogs/反射.md @@ -0,0 +1,467 @@ +--- +反射 +--- + +#### 目录 + +1. 思维导图 +2. 定义 +3. 简单示例 +4. Class + - 如何获取 Class + - 通过 Class 获取类修饰符和类型 +5. Member + - Field + - Method + - Constructor +6. 数组和枚举 +7. 反射优缺点 +8. 参考 + +#### 思维导图 + +![](https://i.loli.net/2019/01/01/5c2ad008a6bdc.png) + +#### 定义 + +1. 对于任意一个类,都能知道这个类的所有属性和方法 +2. 对于任意一个对象,都能知道调用它的任意一个属性和方法 + +这种动态获取信息以及动态调用对象的方法的功能成为 Java 语言的反射机制。 + +反射机制主要设计两个类:Class 和 Member。 + +#### 简单示例 + +```java +public class UserInfo { + private String name; + private int age; + + private UserInfo(String name, int age) { + this.name = name; + this.age = age; +// try { +// throw new Exception("SingleTon can't ref"); +// } catch (Exception e) { +// e.printStackTrace(); +// } + } + + @Override + public String toString() { + return "UserInfo{" + + "name='" + name + '\'' + + ", age=" + age + + '}'; + } +} +``` + +既然构造方法都私有化了,怎么获取类实例呢? + +```java +public class RefDemo { + public static void main(String[] args) throws Exception { + Class c = UserInfo.class; + Constructor constructor = c.getDeclaredConstructor(String.class, int.class); + constructor.setAccessible(true); + UserInfo userInfo = (UserInfo) constructor.newInstance("Omooo", 18); + System.out.println(userInfo.toString()); + } +} + +输出:UserInfo{name='Omooo', age=18} +``` + +#### Class + +Class 是反射操作的基础,每个 class 类,无论创建多少个实例对象,在 JVM 中都对应同一个 Class 对象。 + +##### 如何获取 Class + +Java 反射包 java.lang.reflect 中的所有类都没有 public 构造方法,想要获取这些类的实例,只能通过 Class 类获取,所以说如何想使用反射,必须先获取的 Class 对象。 + +获取 Class 对象有以下几种方法: + +1. Object.getClass() + + 通过对象实例获取对应的 Class 对象。 + + ```java + Class c = "Omooo".getClass(); + ``` + +2. The.Class + + ```java + Class c = String.class; + ``` + +3. Class.forName() + + ```java + Class c = Class.forName("java.lang.String"); + //对于数组比较特殊 String[]: + Class cStringArray = Class.forName("[[Ljava.lang.String;") + ``` + +4. The.TYPE + + ```java + Class c = Double.TYPE; + ``` + +5. Class.getSuperclass() + +##### 通过 Class 获取类修饰符和类型 + +```java + public static void main(String[] args) throws Exception { + Class c = HashMap.class; + //获取类名 UserInfo + String className = c.getName(); + System.out.println("类名: " + className); + //获取类限定符 public + String modifier = Modifier.toString(c.getModifiers()); + System.out.println("类限定符: " + modifier); + //获取类泛型参数 + TypeVariable[] typeParameters = c.getTypeParameters(); + if (typeParameters.length > 0) { + StringBuilder sb = new StringBuilder("泛型参数:"); + for (TypeVariable typeVariable : typeParameters) { + sb.append(typeVariable.getName()); + sb.append("___"); + } + System.out.println(sb.toString()); + } else { + System.out.println("类泛型参数为空!"); + } + //获取类所实现的接口 + Type[] interfaces = c.getGenericInterfaces(); + if (interfaces.length > 0) { + StringBuilder sb = new StringBuilder("接口信息:"); + for (Type type : interfaces) { + sb.append(type.toString()); + sb.append("___"); + } + System.out.println(sb.toString()); + } else { + System.out.println("类接口信息为空!"); + } + //获取继承的父类信息 + List superClazzs = new ArrayList<>(); + getSuperClassName(c, (ArrayList) superClazzs); + if (superClazzs.size() != 0) { + StringBuilder sb = new StringBuilder("父类信息:"); + for (Class clazz : superClazzs) { + sb.append(clazz.getName()); + sb.append("___"); + } + System.out.println(sb.toString()); + } + //获取类注解信息 + Annotation[] annotations = c.getAnnotations(); + if (annotations.length != 0) { + StringBuilder sb = new StringBuilder("类注解信息:"); + for (Annotation annotation : annotations) { + sb.append(annotation.toString()); + sb.append("___"); + } + System.out.println(sb.toString()); + } else { + System.out.println("类注解信息为空!"); + } + } + +输出: +类名: java.util.HashMap +类限定符: public +泛型参数:K___V___ +接口信息:java.util.Map___interface java.lang.Cloneable___interface java.io.Serializable___ +父类信息:java.util.AbstractMap___java.lang.Object___ +类注解信息为空! +``` + +#### Member + +Member 有三个实现类: + +1. Field 对应类变量 +2. Method 对应类方法 +3. Constructor 对应类构造方法 + +##### Field + +通过 Field 你可以访问给定对象的类变量,包括获取变量的类型、修饰符、注解、变量名、变量值等等,即使变量是 private 的。 + +- 获取 Field + + Class 提供了四种方法获得给定类的 Field。 + + - getDeclaredField(String name) 获取指定的变量,包括 private 的 + - getField(String name) 获取指定的变量,只能是 public 的 + - getDweclaredFields() 获取所有的变量,包括 private 的 + - getFields() 获取所有的变量,只能是 public 的 + +- 获取变量类型、修饰符、注解 + + ```java + public static void main(String[] args) { + Class clazz = UserInfo.class; + Field[] fields = clazz.getDeclaredFields(); + if (fields.length > 0) { + for (Field field : fields) { + StringBuilder sb = new StringBuilder(); + //变量名 + String name = field.getName(); + sb.append("变量名:"); + sb.append(name); + //变量类型 + String type = field.getType().getName(); + sb.append("变量类型:"); + sb.append(type); + //变量修饰符 + String modifer = Modifier.toString(field.getModifiers()); + sb.append("变量修饰符:"); + sb.append(modifer); + //变量上的注解 + Annotation[] annotations = field.getDeclaredAnnotations(); + if (annotations.length > 0) { + for (Annotation annotation : annotations) { + String annName = annotation.toString(); + sb.append("注解:"); + sb.append(annName); + } + } + System.out.println(sb); + } + } + } + ``` + +- 获取、设置变量值 + + ```java + public static void main(String[] args) throws Exception { + UserInfo userInfo = new UserInfo("Omooo", 18); + System.out.println("Before: " + userInfo.toString()); + Class clazz = userInfo.getClass(); + Field nameField = clazz.getDeclaredField("name"); + nameField.setAccessible(true); + Field ageField = clazz.getField("age"); + nameField.set(userInfo, "Tom"); + ageField.setInt(userInfo, 19); + System.out.println("After: " + userInfo.toString()); + } + ``` + + 其中,对于 private 的属性、方法或者构造函数,比如要有: + + ```java + xxx.setAccessible(true); + ``` + + 这个方法是 AccessibleObject 中的一个方法,Field、Method、Constructor 都是其子类,该方法的作用就是可以取消 Java 语言访问权限检查。 + +##### Method + +- 获取 Method + + Class 依然提供了四种方法获取 Method: + + ``` + getDeclaredMethod(String name, Class... parameterTypes) + getMethod(Sting name, Class... parameterTypes) + getDeclaredMethods() + getMethods() + ``` + + 获取带参数方法时,如果参数类型错误会报 NoSuchMethodException,对于参数是泛型的情况下,泛型必须当成 Object 处理。 + +- 获取方法返回类型 + + ```java + getReturnType() 获取目标方法返回类型对应的 Class 对象 + getGenericReturnType() 获取目标方法返回类型对应的 Type 对象 + ``` + + 对于返回值是普通类型如 Object、int、String 等,两者返回值一样。但是有两种特殊情况: + + ```java + //1.返回值是泛型 + public T function() + getReturnType() : class java.lang.Object + getGenericReturnType() : T + //2.返回值为参数化类型 + public Class function() + getReturnType(): class java.lang.Class + getGenericReturnType(): java.lang.Class + ``` + +- 获取方法参数类型 + + ```java + getParameterTypes() 获取目标方法各参数类型对应的 Class 对象 + getGenericParameterTypes() 获取目标方法各参数类型对应的 Type 对象 + ``` + + 返回值为数组。 + +- 获取方法声明抛出的异常的类型 + + ```java + getExceptionTypes() 获取目标方法抛出的异常类型对应的 Class 对象 + getGenericExceptionTypes() 获取目标方法抛出的异常类型对应的 Type 对象 + ``` + + 返回值为数组。 + +- 获取方法参数名称 + + .class 文件中默认不存储方法参数名称,如果想要获取方法参数名称,需要在编译的时候加上 -parameters 参数。构造方法的参数获取同样。 + + ```java + public static void main(String[] args) throws Exception { + UserInfo userInfo = new UserInfo("Omooo", 18); + Class clazz = userInfo.getClass(); + Method nameMethod = clazz.getMethod("setName", String.class); + Parameter[] parameters = nameMethod.getParameters(); + if (parameters.length > 0) { + for (Parameter p : parameters) { + StringBuilder sb = new StringBuilder(); + sb.append("参数类型: "); + sb.append(p.getType()); + sb.append("参数名称: "); + sb.append(p.getName()); + System.out.println(sb.toString()); + } + } + } + 输出:参数类型: class java.lang.String参数名称: arg0 + ``` + + 如果编译未加上 -parameters 参数,返回的参数名则形如 ”argX“,X 代表参数的位置。 + +- 获取方法修饰符 + + ```java + method.getModifiers() + ``` + +- 通过反射调用方法 + + 反射通过 Method 的 invoke() 方法来调用目标方法。第一个参数为需要调用的目标类对象,如果方法是 static 的,则该参数为 null,后面的参数都为目标方法的参数值,顺序与目标方法声明中的参数顺序一致。 + + 需要注意的是,被调用的方法本身所抛出的异常在反射中都会以 InvocationTargetException 抛出。换句话说,反射调用过程中如果异常 InvocationTargetException 抛出,说明反射调用本身是成功,因为这个异常是目标方法本身所抛出的异常。 + +##### Constructor + +通过反射访问构造方法并通过构造方法构建新的对象。 + +- 获取构造方法 + + 和 Method 一样,Class 也提供了四种方法获取: + + ```java + getDeclaredConstructor(Class... parameterTypes) + getConstructor(Class... parameterTypes) + getDeclaredConstructors() + getConstructors() + ``` + + 构造方法的名称、限定符、参数、声明的异常等获取方法和 Method 一致。 + +- 创建对象 + + 创建对象有两种方法: + + 1. java.lang.reflect.Constructor.newInstance() + 2. Class.newInstance() + + 一般来讲,优先使用第一种方法,第二种方法已经被废弃了。它们之间的区别有: + + - 方法一可以调用任意参数的构造方法,而方法二只能调用无参的构造方法 + - 方法一会将原方法抛出的异常都包装成 InvocationTaregtException 抛出,而方法二会将原方法中的异常不做处理原样抛出 + - 方法一不需要方法权限,方法二只能调用 public 的构造方法 + + 需要注意的是:反射不支持自动装箱,传入参数时要小心。自动装箱是在编译期间的,而反射是在运行期间。 + +#### 数组和枚举 + +数组和枚举也是对象,但是在反射中,对数组和枚举的创建、访问和普通对象有点不同,Java 反射为数组和枚举提供了一些特定的 API 接口。 + +##### 数组 + +- 数组类型 + + 数组本质上也是一个对象,所以它也有自己的类型。例如对于 int[] array,数组类型为 class [I。数组类型中的 [ 个数表示数组的维度,其后面的字母代表数组元素类型,即 int,一般为类型的首字母大小。( long 类型例外,为 J,因为 L 被引用对象类型占用了) + +- 创建和初始化数组 + + Java 反射为我们提供了 java.lang.reflect.Array 类用来创建和初始化数组。 + + ```java + Array.newInstance(Class componentType, int... dimensions) + Array.set(Object array, int index, int value) + Array.get(Object array, int index) + ``` + + 例如,用反射创建 int[] array = new int[]{1, 2}: + + ```java + public static void main(String[] args) throws Exception { + Object array = Array.newInstance(int.class, 2); + Array.set(array, 0, 1); + Array.set(array, 1, 2); + System.out.println(Array.get(array, 1)); + } + ``` + +- 多维数组 + + Java 反射没有提供能够直接访问多维数组元素的 API,但你可以把多维数组当成数组的数组处理。 + + ```java + public static void main(String[] args) throws Exception { + Object matrix = Array.newInstance(int.class, 2, 2); + Object row1 = Array.get(matrix, 0); + Object row2 = Array.get(matrix, 1); + Array.set(row1, 0, 1); + Array.set(row1, 1, 2); + Array.set(row2, 0, 3); + Array.set(row2, 1, 4); + } + ``` + +##### 枚举 + +枚举隐式继承自 java.lang.Enum,Enum 继承自 Object,所以枚举本质上也是一个类,也可以有成员变量、构造方法、方法等。对于普通类所能使用的反射方法,枚举都能使用,另外,Java 反射额外提供了几个方法。 + +```java +Class.isEnum() +Class.getEnumConstants() +java.lang.reflect.Field.isEnumConstant() +``` + +#### 反射优缺点 + +优点:动态改变类行为 + +缺点: + +1. 性能开销 + + 反射涉及类型动态解析,所以 JVM 无法对这些代码进行优化。因此,反射操作的效率低下,尽量避免在高性能要求下使用反射。 + +2. 安全限制 + + 使用反射要求程序必须在一个没有安全限制的环境中运行。 + +3. 内部曝光 + + 由于反射允许代码执行一些在正常情况下不被允许的操作,所以使用反射可能会导致意料之外的副作用。 + +#### 参考 + +[Java 反射完全解析](https://www.jianshu.com/p/607ff4e79a13) \ No newline at end of file diff --git a/images/反射.png b/images/反射.png new file mode 100644 index 0000000000000000000000000000000000000000..7af7ec4a9451c08e425c61191d7e54aa8f76b5b2 GIT binary patch literal 57113 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