通过反射来获取某一个类的构造器可以分两步:
1.获取该类的字节码对象 (可参考文章 反射机制 )
2.从该字节码对象中去找需要获取的构造器(查看API文档)
获取所有构造器有两个方法:
1.getConstructor():获取当前Class所表示类的所有public方法
2.getDeclaredConstructor():获取所有构造器
获取指定的一个构造器的方法:
我们知道构造方法的方法名是与类名相同的,所以不能通过方法名来区分各个方法。在调用构造方法时候是用参数类型,参数个数等区分的,那这里也同样。
import java.lang.reflect.Constructor;
class User {
public User() {
}
public User(String name) {
}
private User(String name, int age) {
}
}
// 获取构造器
public class GetConstructorDemo {
public static void main(String[] args) throws NoSuchMethodException, SecurityException {
// getAll();
getOne();
}
// 获取指定的一个构造器
private static void getOne() throws NoSuchMethodException, SecurityException {
// 1.获取构造器所在类的字节码对象
Class<U