Mam klasy, który definiuje własne wyliczenia tak:Jak mogę odwołać mój Java Enum bez określenia jego typu
public class Test
{
enum MyEnum{E1, E2};
public static void aTestMethod() {
Test2(E1); // << Gives "E1 cannot be resolved" in eclipse.
}
public Test2(MyEnum e) {}
}
Gdybym określić MyEnum.E1 to działa dobrze, ale ja naprawdę tak jak mieć to jako "E1". Każdy pomysł, w jaki sposób mogę to osiągnąć, lub czy musi być zdefiniowany w innym pliku, aby to działało?
WNIOSEK: Nie udało mi się uzyskać poprawnej składni importu. Ponieważ kilka odpowiedzi sugerowało, że jest to możliwe, wybiorę tę, która dała mi składnię, której potrzebowałem, i poparłem pozostałe.
Nawiasem mówiąc, NAPRAWDĘ CZĘŚCIOWĄ część tego (zanim dostałem statyczny import do pracy), napisana przeze mnie instrukcja switcha, która używała enum, nie pozwalała na wyliczenie enum przez jego typ - wszystko reszta kodu tego wymagała. Zranić moją głowę.
Jeśli chodzi o zachowanie "naprawdę dziwne" w instrukcjach przełączania: Java robi to na wszystkich wyliczeniach w instrukcji switch. Ponieważ wiesz, jaki typ włączasz, uważają, że nie ma powodu, aby ponownie określić typ w każdym bloku sprawy. http://download.oracle.com/javase/tutorial/java/javaOO/enum.html – StriplingWarrior
Domyślam się, że zrozumiałem, że nie zezwala na prefiks typu Enum. Prefiks w dowolnym miejscu jest wymagany (jeśli nie importowany) lub opcjonalny. –
Zgadzam się z tobą w odniesieniu do niespójności 'switch', sprawia, że mniej doświadczeni programiści Javy drapią się po głowie. – jmarkmurphy