Instantiate unknown class at runtime and call the object's methods

package com.javadb.examples;

import java.lang.reflect.Method;


public class Main {

public void loadClass() {
try {

Class myclass = Class.forName(getClassName());

//Use reflection to list methods and invoke them
Method[] methods = myclass.getMethods();
Object object = myclass.newInstance();

for (int i = 0; i < methods.length; i++) {
if (methods[i].getName().startsWith("say")) {
System.out.println(methods[i].invoke(object));
}

}

} catch (Exception ex) {
ex.printStackTrace();
}
}

private String getClassName() {

//Do appropriate stuff here to find out the classname

return "com.javadb.examples.MyClass";
}

public static void main(String[] args) {
new Main().loadClass();
}
}






MyClass:


package com.javadb.examples;

/**
*
* @author www.javadb.com
*/
public class MyClass {

public String sayHello() {

return "Hello";
}

public String sayGoodbye() {

return "Goodbye";
}

}


The output from the example will be:


Hello
Goodbye

0 comments:

                                                                

Site Meter