java - Storing Class in Array -


i have n class (class1, class2, .., classn), each have static main methods.

i wish store class in array, , call main method once each class. type have declare array?

this have done according reply t.j. crowder

arraylist<class> meoa = new arraylist(                     arrays.aslist(class.forname("mypackage.class1"),                             class.forname("mypackage.class2"),                             class.forname("mypackage.class3"),                             class.forname("mypackage.class4"),                             class.forname("mypackage.class5")));                 for(class cls:meoa) {               system.out.println("invoking:"+cls.getname());               method m = cls.getdeclaredmethod("main", string[].class);               object[] arg = new object[1];                                 arg[0] = new string[] {};               m.invoke(null, arg);           } 

the type class[] (array of class). (since main static method, can't use interface this.)

when you're ready call main, you'd via reflection, e.g.:

class[] classes = /*...create , fill in array...*/; (class cls : classes) {     // main method accepting array of strings     method m = cls.getdeclaredmethod("main", string[].class);     m.invoke(null, /*...see note below...*/); } 

re "see note below" above: argument pass invoke object[] (array of object) containing arguments give main. since main expects single argument (an array of strings), have pass single-entry object[] 1 entry string[]. instance, if going pass ["one", "two", "three"] main, you'd construct invoke argument this:

object[] arg = new object[1];                    // room 1 argument arg[0] = new string[] { "one", "two", "three" }; // 1 arg string array m.invoke(null, arg);                             // invoke main 

(the null in call invoke instance on call method; since main static, supply null that.)


Comments

Popular posts from this blog

Android layout hidden on keyboard show -

google app engine - 403 Forbidden POST - Flask WTForms -

c - Why would PK11_GenerateRandom() return an error -8023? -