java反射

反射是指在程序运行中,对于一个类,可以动态获取它的属性和方法;对于一个对象,可以调用它的属性和方法。

获取Class对象的三种方法

Person p1=new Person();
Class c1=p1.getClass();

Class c2=Person.class;

Class c3=Class.forName("com.zrun.Person");

Class对象的常用方法

getName():获得类的完整名字。
getFields():获得类的public类型的属性。
getDeclaredFields():获得类的所有属性。包括private 声明的和继承类。
getMethods():获得类的public类型的方法。
getDeclaredMethods():获得类的所有方法。包括private 声明的和继承类。
getMethod(String name, Class[] parameterTypes):获得类的特定方法,name参数指定方法的名字,parameterTypes 参数指定方法的参数类型。
getConstructors():获得类的public类型的构造方法。
getConstructor(Class[] parameterTypes):获得类的特定构造方法,parameterTypes 参数指定构造方法的参数类型。
newInstance():通过类的不带参数的构造方法创建这个类的一个对象。

反射执行方法

Person p1 = (Person) c1.newInstance();
c2.getMethod("sayHello").invoke(p1);

原文地址:https://www.cnblogs.com/yinchh/p/10447464.html