Axel Richter: Klasse indirekt aufrufen

Beitrag lesen

Hallo,

Lassen wir das mit der Eingabe erst mal weg.

ich bekomme es nur nicht auf die Reihe die Klasse zu starten.

Eine Klasse kann man nicht starten. Eine Klasse ist die Beschreibung eines Objektes. Dadurch, dass eine Instanz dieser Klasse aufgerufen wird, entsteht das Objekt im Speicher. Wenn Du den Namen der Klasse in einer Variable hast und damit eine Instanz der Klasse, also das dort beschreibene Objekt, aufrufen möchstest, dann geht das mit Class.newInstance(). Eine Klasse ohne Objekt ist nur ein Bauplan. Es geht also nicht ohne Objekt.

class Main {
    public static void main(String[] args) {
        String input = "HelloWorld";
        try {
          Object o = Class.forName(input).newInstance();
        } catch (ClassNotFoundException e) {
            System.out.println(e);
        } catch (InstantiationException e) {
            System.out.println(e);
        } catch (IllegalAccessException e) {
            System.out.println(e);
        }
    }
}

hier auch noch dessen Quelltext:
public class HelloWorld {
    public void HelloWorld() {

^Der Constructor einer Klasse gibt _nichts_ zurück, auch nicht void ;-))

System.out.println("HELLO WORLD!");
    }
}

public class HelloWorld {
    HelloWorld() {
        System.out.println("HELLO WORLD!");
    }
}

viele Grüße

Axel