class&constructor&method&field
一、Class类的获取方法
1)类名.class。。例如:Class<Person> clazz = Person.class
2)对象引用.getClass()。。例如:Person A = new Person(); Class<Person> clazz = A.getClass()
3)类的路径。。。。例如: String className = 包名.类名; Class<?> clazz = Class.forName(className);
那我用哪种呢? 你知道类名,就用第一种;不知道类名,但有个对象,用第二种;有个路径,用第三种
二、Constructor类,专门用来描述构造函数对象
1)Constructor o = clazz.getConstructor(); 获取无参的public构造函数
2)clazz.getConstructor(String.class, int.class); 获取有参的public构造函数
3)Constructor[] os = clazz.getConstructors(); 获取所有public的构造函数...没有的话,数组长度为0
4)clazz.getDeclaredConstructor(): 获取无参的构造函数。。不管public还是private,protected
5)clazz.getDeclaredConstructors():
三、Method类,描述单个方法(不含构造方法)
1)clazz.getMethod(String name); 给一个方法名称,返回无参,public的方法
2)clazz.getMethod(String name, String.class, Date.class) 有参,public
3)clazz.getMethods(); 不仅包括本身类定义的方法描述对象,还包含继承自父类或接口的方法描述对象
4)clazz.getDeclaredMethod(.....);
5)clazz.getDeclaredMethods();
四、Field类,描述属性