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类,描述属性

class&constructor&method&field