Java 反射机制
- 什么是反射(what’s Java Reflection)
java反射是Java被视为动态(或准动态)语言的一个关键性质。这个机制允许程序在运行时透过Reflection
APIs取得任何一个已知名称的class的内部信息,包括其modifiers(诸如public,static等等)、superclass(例如Object)、实现之int。erfaces(例如Cloneable),也包括fields和methods的所有信息,并可于运行时改变fields内容或唤起methods
- 反射能做什么(what reflection can do)
在运行时判断任意一个对象所属的类
在运行时构造任意一个类的对象
在运行时判断任意一个类所具有的成员变量和方法
在运行时调用任意一个对象的方法
- 反射的API(ReflectionAPI)
java.lang.reflect.Method;java.lang.reflect.Constructor;java.lang.reflect.Field;java.lang.reflect.Modifier;java.lang.reflect.Array;
//获取任意一个类
Class clz = String.class;
Class clz = Class.forName(“java.lang.String”);
实例化对象、判断其类型 public class ReflectionExample { public static void main(String[] args) { Class clz = ReflectionExample.class; try { if (clz.newInstance() instanceof String) { System.out.println("instance is String"); } else { System.out.println("instance is not String"); } } catch (InstantiationException e) { e.printStackTrace(); } catch (IllegalAccessException e) { e.printStackTrace(); } }}
java.lang.reflect.Constructor
Class.getConstructors();
Class.getConstructor(Class[]);
- The Class class
- Class methods
- Constructor class
- Method class
- invoking a method, throwing exceptions
- Array class
- Member interface
- Field class
- accessible object
- Java Reflection
------------------待续