Deklaruję wyliczenie jako:
enum Sex {MALE,FEMALE};
Następnie wykonaj iterację wyliczenia, jak pokazano poniżej:
for(Sex v : Sex.values()){
System.out.println(" values :"+ v);
}
Sprawdziłem interfejs API języka Java, ale nie mogę znaleźć metody values ()? Ciekawi mnie, skąd się wzięła ta metoda?
Łącze do API: https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html
Metoda jest niejawnie zdefiniowana (tj. Generowana przez kompilator).
Z JLS :
źródło
Added by the compiler
oznacza, że nie ma .java dla tego kodu lub kod jest generowany przez kompilator? Sprawdziłem kod źródłowy OpenJDK Enum i nie mavalues()
Uruchom to
zobaczysz
To są wszystkie publiczne metody, które posiada klasa „seks”. Nie ma ich w kodzie źródłowym, dodał javac.exe
Uwagi:
nigdy nie używaj seksu jako nazwy klasy, trudno jest odczytać kod, używamy seksu w Javie
w obliczu łamigłówki Javy, takiej jak ta, zalecam użycie narzędzia do dekompilacji kodu bajtowego (używam wtyczki Eclispe z konspektem kodu bajtowego Andreya Loskutova). To pokaże wszystko, co jest w klasie
źródło