你直接用class字节码的 .newInstance方法时会默认调用空参数的构造方法来创建对象. 看你后面代码反射的方法名是Person, 说明你自己定义了一个有参数的构造方法, 这样- Person bean = (Person)clazz.newInstance();
复制代码 这行代码就会抛InstantiationException这个错误, 因为找不到空参数的构造方法来创对象.
- public static void main(String[] args) throws Exception {
- Class clazz = Person.class;
- Constructor constr = clazz.getConstructor(String.class, int.class);
- Person bean = (Person) constr.newInstance("wangwu",20);
- System.out.println(bean.getAge());
- }
复制代码
这样应该就OK了. |