In Java können Sie eine Aufzählung wie folgt erstellen:
public enum Letter {
A, B, C, D, E, F, G;
static {
for(Letter letter : values()) {
// do something with letter
}
}
}
Diese Frage betrifft die Methode "values ()". Wie wird es konkret umgesetzt? Normalerweise könnte ich mit F3 oder STRG + Klicken in Eclipse zur Quelle für Java-Klassen springen (auch für Klassen wie String, Character, Integer und sogar Enum). Es ist möglich, die Quelle der anderen Aufzählungsmethoden anzuzeigen (z. B. valueOf (String)).
Erstellt "values ()" bei jedem Aufruf ein neues Array? Wenn ich es einer lokalen Variablen zuweise und dann eines der Elemente ändere, was passiert (dies hat natürlich keinen Einfluss auf den von values () zurückgegebenen Wert, was bedeutet, dass jedes Mal ein neues Array zugewiesen wird).
Ist der Code dafür nativ? Oder behandelt die JVM / der Compiler sie speziell und gibt nur dann eine neue Instanz von values () zurück, wenn sie nicht nachweisen kann, dass sie nicht geändert wird.