Java Felder mit Werten initialisieren

beig1 schrieb:
Möglich wäre auch

Code:
public static List<Integer> liste = new ArrayList<Integer>() {{
    add(10);
    add(15);
    ..
}}

Dann gibt mir java allerdings die Warnung aus, dass die Klasse keine serialVersionUID deklariert. Kann ich das ignorieren oder könnte mir das später auf die Füße fallen?
Ergänzung ()

rille schrieb:
Ein enum wäre da eher das richtige Mittel...
Vielleicht werde ich das später in Enum typen umwandeln, aber im Moment lassen sich so leichter neue Altersstufen hinzufügen, sowie andere Statistiken leichter berechnen, die auf dem Alter aufbauen. Bei der visuellen Ausgabe kann ich die int Werte dann ja parsen.
 
Ich kann mir nicht vorstellen, dass das mit der SerialVersionID für Dein Projekt notwendig ist. Da geht es darum, dass wenn Objekt als Bytestrom serialisiert werden und später wieder daraus (aus den Bytes) ein konkretes Javaobjekt gebaut werden soll, dann ist die Versionierung Deiner Klasse nötig. Das ist z. B. der Fall, wenn Du Java-RMI nutzt oder Du selbst Deine Objekte über einen ObjectSerializer serialisierst.
 
xXxOrcaxXx schrieb:
Dann gibt mir java allerdings die Warnung aus, dass die Klasse keine serialVersionUID deklariert. Kann ich das ignorieren oder könnte mir das später auf die Füße fallen?

Das kannst du ignorieren, sofern du mit Serialisierung nichts am Hut hast. Wenn die Warnung nicht auftauchen soll, dann einfach folgendes davor schreiben:
Code:
@SuppressWarnings("serial")

Der Grund für die Warnung ist, dass mit der "Doppel-geschweifte-Klammer"-Notation eine anonyme innere Klasse erstellt wird.

Mehr zum Thema sowie Warnungen, warum diese Notation eigtl. unüblich ist findest du u.a. hier: http://stackoverflow.com/questions/1958636/what-is-double-brace-initialization-in-java

Eine (aus meiner Sicht schönere) Alternative wäre es, auf die Felder nicht direkt zuzugreifen, sondern hierfür getter einzusetzen.
TODOs wären:
1. Listen-Feld auf private setzen
2. public getter-Methode für das Feld erstellen
3. in der Getter-Methode eine Abfrage platzieren, ob die Liste bereits initialisiert bzw. bereits mit Werten befüllt worden ist oder nicht.
 
Zurück
Oben