Java的很多源码中,大量使用的Java的反射机制。故而在这对Java的反射作一总结记录。
Java的反射机制是指在运行状态中,对于任意一个类,都能都知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和属性。java反射机制使得java语言可以在运行时去认识在编译时并不了解的类和对象的信息,并且能够调用相应的方法并修改属性值。
1.获取对象的类
Class clazz = Object.getClass();
2.获取类的信息
String className = clazz.getName();
Method[] methods = clazz.getDeclaredMethods(); //方法
Field[] fields = clazz.getFields(); //字段
3.构建对象
Class.forName("className ").newInstance();
4.动态执行方法
Method mthod = clazz.getDeclaredMethod("add", int.class,int.class);
mthod.invoke(mthod, 1,2);
5.动态操作属性
Field field = clazz.getDeclaredField("name");
field.get(this);
field.set(this, new Object());