1> Creating a Test instance
Public classTest {Privatestring string; Private intAnint; PublicTest () {System.out.println ("This is test.test ()"); } PublicTest (String S,intanint) { This. String =s; This. Anint =Anint; } Private voidPrintOut () {System.out.println ("Test.printout-azheng" + "string:" + string + "Anint:" +anint); }}
2> by reflection, calling the test class's parameter construction method and the defined output method
Public classMainactivityextendsappcompatactivity {@Overrideprotected voidonCreate (Bundle savedinstancestate) {Super. OnCreate (savedinstancestate); Setcontentview (R.layout.activity_main); Class<Test> C = Test.class; Test test=NULL; Constructor Constructor=NULL; Try { //obtaining a method for constructing a parameterconstructor = C.getdeclaredconstructor (String.class,int.class); Test= (Test) constructor.newinstance ("Yes", 1000); //Get Methodmethod = C.getdeclaredmethod ("PrintOut"); Method.setaccessible (true); Method.invoke (test); } Catch(nosuchmethodexception e) {e.printstacktrace (); } Catch(illegalaccessexception e) {e.printstacktrace (); } Catch(instantiationexception e) {e.printstacktrace (); } Catch(InvocationTargetException e) {e.printstacktrace (); } }}
Reference:
Http://baike.xsoftlab.net/view/209.html#3_2
Apps for reflection in Android