JAVA: Aufruf von Unbekannten Objekt, Klasse, Methode und Übergabe von Parametern

Ziel ist einfach: ich möchte eine Methode erstellen, das laden einer Klasse dynamisch, Zugriff auf seine Methode und übergeben Ihre Parameter Wert und immer den return-Wert zur Laufzeit.

Klasse, die aufgerufen wird,

class MyClass {

    public String sayHello() {

        return "Hello";
    }

    public String sayGoodbye() {

        return "Goodbye";
    }

    public String saySomething(String word){
        return word;
    }
}

Main-Klasse

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("saySome")) {
                    String word = "hello world";

                    //**TODO CALL OBJECT METHOD AND PASS ITS PARAMETER**
                } else if (methods[i].getName().startsWith("say")) {

                    //call method
                    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.main.MyClass";
    }

    public static void main(String[] args) throws Exception {

        new Main().loadClass();
    }
}

Meine Frage ist, wie die invoke-Methode mit Parameter und übergeben Sie dessen Wert? auch immer der return-Wert und dessen Typ.

Schreibe einen Kommentar