Ich habe eine Enum, die privat ist, nicht außerhalb der Klasse ausgesetzt werden. Gibt es trotzdem einen statischen Import dieses Typs, so dass ich den Enum-Typ nicht jedes Mal eingeben muss? Oder gibt es eine bessere Möglichkeit, dies zu schreiben? Beispiel:Kann ich einen statischen Import einer privaten Unterklasse durchführen?
package kip.test;
import static kip.test.Test.MyEnum.*; //compile error
public class Test
{
private static enum MyEnum { DOG, CAT }
public static void main (String [] args)
{
MyEnum dog = MyEnum.DOG; //this works but I don't want to type "MyEnum"
MyEnum cat = CAT; //compile error, but this is what I want to do
}
}
nein, enum bietet neben der Kapselung auch andere Formen der Sicherheit - zum Beispiel können Sie sie in switch-Anweisungen verwenden, und Sie können Warnungen erhalten, wenn Sie eine weglassen. Bleiben Sie einfach beim Qualifier - es gibt schlechtere Ausführlichkeitsprobleme in Java;) – Chii
@akf: Chii hat recht, in meinem tatsächlichen Code haben die Enums ein Verhalten, das über das hinausgeht, was mit statischen Konstanten trivial gemacht werden kann. Ich habe das alles für die Frage vereinfacht, also wäre es das einfachste Beispiel. Ich denke, ich bin nur mit langen Qualifier-Namen (viel länger als "MyEnum" in meinem tatsächlichen Code leider ...) stecken – Kip
@Kip: In diesem Fall, warum haben Sie diese Antwort? – Thilo