Variable baut die Methode

Denfie

Mitglied
Hey ihr,

ich finde leider zu diesem Thema nix, vielleicht weil mir auch gerade nicht einfällt wie das eigentlich richtig heißt. Wäre toll wenn ihr mir schnell weiter helfen könntet.

Folgendes Problem:
Ich möchte meine Methoden anhand von meiner übergebenen Variablen aufrufen.
Beispiel aus PHP:
PHP:
{'test'_$var}($uebergabe);

und den gleichen Aufruf möchte ich auch unter Java bewerkstelligen können. Geht das überhaupt. Habe nämlich ein Enum mit über 20 Bedeutungen und zu jedem Eintrag gibt es eine Funktion.

Ich will aber kein switch bauen müssen, weil dann verliert man irgendwann den Überblick.

Würde mich freuen wenn ihr mir schnell antworten könntet... :D
 
Hallo,

schua mal hier:
Java:
package de.tutorials;

public class ReflectiveCallExample {

    /**
     * @param args
     */
    public static void main(String[] args) {
        call("print", "Prost Neujahr!");
        
        System.out.println("##############");
        
        call("printN", 10, "Prost Neujahr!");
    }

    static void call(String methodName, Object... args) {
        try {

            Class<?>[] parameterTypes = new Class[args.length];
            for (int i = 0; i < args.length; i++) {
                parameterTypes[i] = args[i] != null ? args[i].getClass() : Object.class;
            }

            ReflectiveCallExample.class.getDeclaredMethod(methodName, parameterTypes).invoke(null, args);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    static void print(String value) {
        System.out.println(value);
    }

    static void printN(Integer n, String value) {
        for (int i = 0; i < n; i++) {
            System.out.println(value);
        }
    }

}

Ausgabe:
Code:
Prost Neujahr!
##############
Prost Neujahr!
Prost Neujahr!
Prost Neujahr!
Prost Neujahr!
Prost Neujahr!
Prost Neujahr!
Prost Neujahr!
Prost Neujahr!
Prost Neujahr!
Prost Neujahr!

Gruß Tom
 
Zurück