- import java.lang.reflect.Constructor;
- class Person{
- private String name;
- private int age;
- Person(String name,int age){
- this.setName(name);
- this.setAge(age);
- }
- public String getName(){
- return name;
- }
- public void setName(String name){
- this.name=name;
- }
- public int getAge(){
- return age;
- }
- public void setAge(int age){
- this.age=age;
- }
- public String toString(){
- return "name:"+this.name+"age:"+this.age;
- }
- }
- class Reflection{
- public static void main(String[] args){
- Class<?> c=null;
- try{c=Class.forName("Person");}
- catch(ClassNotFoundException e){
- e.printStackTrace();
- }
- Constructor<?> con[]=null;
- con=c.getConstructors();
- Person per=null;
- try{per=(Person)con[0].newInstance("Leo",20);}
- catch(Exception e){
- e.printStackTrace();
- }
- System.out.println(per);
- }
- }
复制代码 Constructor<?> con[]=null;//声明一个表示构造方法的数组
con=c.getConstructors();//通过反射获得全部的构造方法
Person)con[0].newInstance("Leo",20);//向构造方法中传递参数并实例化对象,数组下标为0,表示调用第一个构造方法
请问关于以上程序,为什么会出现 java.lang.ArrayIndexOutOfBoundsException异常
|
|