enum innerhalb einer Klasse in neuer Intanz wie erreichen?

Mnyut

Grünschnabel
Hallo,
habe da ein Problem:

Datei Test.java
Code:
public class Test implements TestInterface
{
	public enum Farbe{
		ROT,
		GRUEN,
		BLAU,
		GELB
	}

// weitere Methoden folgen...	
	
}

so komme ich an die Farben ran:

Datei Probe.java
Code:
public class Probe
{
// ...

System.out.println(Test.Farbe.ROT);

//...
}

jetzt möchte ich aber eine neue Instanz von Test erstellen und jetzt komm ich nicht mehr an enum Farbe ran:

Datei Probe2.java
Code:
public class Probe
{
//...

Test Instanz = new Test();

//...

System.out.println(Instanz.Farbe.ROT);

//...

}


Was habe ich vergessen, wo stehe ich auf dem Schlauch?
 
Mmm, vielleicht lass ich mich von Eclipse täuschen. Eclipse schlägt ja eigentlich vor wenn ich

Instanz.F

eingebe, kann ich Farbe auswählen und danach die Farben. Das macht Eclipse aber nur bei Test.F..., nicht bei einer Instanz von Test.
 
Mmm, vielleicht lass ich mich von Eclipse täuschen. Eclipse schlägt ja eigentlich vor wenn ich

Instanz.F

eingebe, kann ich Farbe auswählen und danach die Farben. Das macht Eclipse aber nur bei Test.F..., nicht bei einer Instanz von Test.


edit:
Wenn ich mit Instanz.Farbe.ROT laufen lasse kommt als Fehler:
Exception in thread "Thread-2" java.lang.Error: Unresolved compilation problems:
Instanz.Farbe cannot be resolved or is not a field
 
Nö, natürlich nicht. Eclipse macht es im Code schon rot und wenn ich auf Run drücke kommt auch in der Console eine Fehlermeldung.
 
Normalerweise benutzt das Enum wie ein normales Enum auch, welches keine inner class ist.

Daher: Farbe.ROT;

Und per Instanz greift man normalerweise nie auf Enums zu oder manch andere statische Dinge von anderen Klassen.
 
Zurück