1. 程式人生 > >反射報錯java.lang.IllegalArgumentException: wrong number of arguments

反射報錯java.lang.IllegalArgumentException: wrong number of arguments

tco private int 分享 技術分享 arguments oid image vat

class Person{
    private String name ;
    private String sex ;
    public  Person(){
        System.out.println("c");
    }
    public  Person(String c1){
         this.name =c1;
        System.out.println("c1"+c1);
    }
    public  Person(String c1,String c2){
        this.name =c1;
        this
.sex =c2; System.out.println("c1"+c1 +"c2"+c2); } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getSex() { return sex; } public void setSex(String sex) { this.sex = sex; } }
 public  static  void  main(String [] args){
        try {
            Class<?> clazz = Class.forName("com.leeeason.miaosha.Person") ; // 取得Class對象
            Constructor<?>[] constructors = clazz.getConstructors();
            System.out.print(constructors.length);
            Object o 
= constructors[0].newInstance(); } catch (Exception e) { e.printStackTrace(); } }

報錯java.lang.IllegalArgumentException: wrong number of arguments

技術分享圖片

因為構造函數取值的時候是從下往上 從0開始

  public  static  void  main(String [] args){
        try {
            Class<?> clazz = Class.forName("com.leeeason.miaosha.Person") ; // 取得Class對象
            Constructor<?>[] constructors = clazz.getConstructors();
            //System.out.print(constructors.length);
            //修改後
            Object o = constructors[2].newInstance();
        } catch (Exception e) {
            e.printStackTrace();
        }

    }

技術分享圖片

返回成功

反射報錯java.lang.IllegalArgumentException: wrong number of arguments