为什么我这样写获取不到构造器,请看下面我写的代码。
- import java.lang.reflect.Constructor;
- class Text2
- {
- public static void main(String[] args) throws Exception
- {
- //1,获取该类的字节码
- Class<Person> clazz = (Class<Person>)Class.forName("Person");
-
- //3,获取指定的构造器
- Constructor<Person> constructor = clazz.getConstructor();
-
- constructor.setAccessible(true);//加了这个也不行,为什么找不到无参构造器
- System.out.println("指定获取:"+constructor);
- }
- }
- class Person
- {
- private String name;
- public int id;
- Person() //此处为什么没用public修饰就无法获取,上面使用setAccessible(true);也不行,为什么??
- {
- System.out.println("无参构造函数");
- }
- public Person(String name,int id)
- {
- this.name = name;
- this.id = id;
- System.out.println("。。。有参构造函数");
- }
- public Person(String s)
- {
- System.out.println(s);
- }
- }
复制代码 |