Java的反射机制是在运行的状态中,对于任意的一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,能够调用它的任意一个属性和方法,这种动态获取的信息以及动态调用对象的方法的功能成为java语言的反射机制。简单一句话,反射技术可以对类进行解剖。
Person p = new Person(); //对象
Class<? extends Person> class1 = p.getClass(); //获取
Class<? extends Person> class2 = Person.class;
Class.forName("com.aishang.java.Person"); //包名+类名
Class clazz = Class.forName("com.aishang.java.Person");
Person person = (Person)clazz.newInstance();
public void fun4() throws Exception{0
Class clazz = Class.forName("com.aishang.java.Person");
Constructor[] constructors = clazz.getConstructors();
for (Constructor constructor : constructors) {
System.out.println(constructor);
}
Constructor constructor = clazz.getConstructor(String.class,Integer.class);
Person p = (Person)constructor.newInstance("张三",20);
System.out.println(p.toString());
}
clazz.getDeclaredFields();
clazz.getFields();
clazz.getDeclaredField("字段名");
field.set(对象, 参数);
field.setAccessible(true);
clazz.getMethods();
clazz.getDeclaredMethods();
Object invoke = method.invoke(对象(若为静态方法可为null), 参数列表); //invoke 为返回值
原文:https://www.cnblogs.com/yc0014/p/13976841.html