classperson{PrivateString name; PrivateString sex; PublicPerson () {System.out.println (C); } PublicPerson (String C1) { This. Name =C1; System.out.println ("C1" +C1); } PublicPerson (String c1,string C2) { This. Name =C1; This. Sex =C2; System.out.println ("C1" +C1 + "C2" +C2); } PublicString GetName () {returnname; } Public voidsetName (String name) { This. Name =name; } PublicString Getsex () {returnsex; } Public voidsetsex (String sex) { This. Sex =sex; }}
Public Static void Main (String [] args) { try { class/// Get class object Constructor<?>[] Constructors = clazz.getconstructors (); System.out.print (constructors.length); = Constructors[0].newinstance (); Catch (Exception e) { e.printstacktrace (); } }
Error Java.lang.IllegalArgumentException:wrong number of arguments
Because the constructor takes a value from bottom to top starting at 0.
Public Static voidmain (String [] args) {Try{Class<?> clazz = Class.forName ("Com.leeeason.miaosha.Person");//get the Class objectConstructor<?>[] Constructors =clazz.getconstructors (); //System.out.print (constructors.length); //after modificationObject o = constructors[2].newinstance (); } Catch(Exception e) {e.printstacktrace (); } }
Return success
Reflection error Java.lang.IllegalArgumentException:wrong Number of arguments