Ich bekomme es nicht hin, dass meine Variable ( die auf einem Interface beruht) initialisiert.
Irgendwie nimmt Sie meine Klassen nicht an. Dabei weiß ich durch die Print-Funktionen, dass meine Klasse entsprechend meiner Eingabe initialisiert wird,
aber ThePlanet übernimmt die Klasse nicht, beziehungsweise nimmt thePlanet nicht das initialisierte Objekt an.
Eigentlich müßte es ja so sein (falls ich es richtig verstehe:
Consoleneingabe Erde wird abgeglichen mit Interface-Konstanten, mein noch nicht vorhandenes Erdobjekt wird initialisiert und
thePlanet wird new Earth() zugewiesen.
Also müsste ich doch von thePlanet die Klasse ausdrucken können, oder?
Ich komme jedenfalls nicht durch die Validierung. Vielleicht kann mir einer von Euch sagen, wo mein Denkfehler liegt.
Danke.
package de.codegym.task.task15.task1522;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
/*
Singleton-Muster festigen
*/
public class Solution {
public static void main(String[] args) {
Planet thePlanet;
}
public static Planet thePlanet;
// Hier statischen Block einfügen
static
{
readKeyFromConsoleAndInitPlanet();
}
public static void readKeyFromConsoleAndInitPlanet() {
// Hier Schritt #5 implementieren
try {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
String x = reader.readLine();
if (x.equals(Planet.EARTH)) {
thePlanet= Earth.getInstance();
}
if (x.equals(Planet.MOON)) {
thePlanet = Moon.getInstance();
}
if (x.equals(Planet.SUN)) {
thePlanet = Sun.getInstance();
}
else thePlanet = null;
reader.close();
} catch (IOException e) {
System.out.println("Gib Sonne, Mond oder Erde ein.");
}
}
}