反射報錯java.lang.IllegalArgumentException: wrong number of arguments
阿新 • • 發佈:2018-07-13
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