Ich möchte nämlich ein Array public final machen aber dazu müssen ja die Werte zuerst ins Array.
Geht das dann das Array zu deklarieren, dann initialisieren (im Konstruktor) und dann final machen?
auch wenn ein Array final ist, sind es die Werte im Array noch nicht, also denke ich das der Sinn schon weg ist. du kanst die Werte die du dem Array zuordnest final machen...
Wahrscheinlich weil er den Array einer anonymen Klasse oder verschachtelten Klasse mitübergibt oder die Klasse etwas benötigt, weil dann muss man es als final deklarieren
ne ist so ein blödes uni beispiel. wir müssen die klasse date selber erstellen.
also möchte ich die möglichen tage eines monats in einem array speichern.
Ich denke der Beitrag von meez passt (mir) am besten. Oder weiss jemand etwas besseres?
Nein die sind nicht static final....
Werte in einem Array sind eigentlich immer private und gehören halt dem "Array-Object"...
Bei primitiven und imutable Klassen ist es aber eigentlich ehh egel, ob sie final sind, da ja die Klasse "final" ist...
public class cls {
public static final Obejct obj1= new Obejct ();
public static final Obejct obj3= new Obejct ();
public static final Obejct obj4= new Obejct ();
public static final Obejct obj5= new Obejct ();
public static final Object[] array = {obj1, obj2,obj3,obj4,obj5};
...
Hm danke. Ich werde vermutl. meez's Vorschlag wahrnehmen, da die Aufgabe doch zu klein ist für nen Wrapper. Aber für die Zukunft merk ich mir das.
So und jetzt nochwas was nix mit der Frage zu tun hat.
Was bedeutet eigentlich dieses foo (wie in foobar's Name), das in fast jedem Tutorial und Beispiel verwendet wird?!
Eine häufie Stolperstelle ist ein konstanter Array, da man dessen Elemente ändern kann !
Code:
private static final String[] TEST = {"Test", "Test2"};
public static void main(String[] args) {
System.out.println(TEST[0]); // gibt "Test" aus
TEST[0] = "HAHA";
System.out.println(TEST[0]); // gibt "HAHA" aus
}
Um dem entgegen zu gehen niemals einen konstanten Array verwenden, sondern ihn in eine unmodifizierbare Liste umwandeln:
Code:
private static final String[] TEST = {"Test", "Test2"};
public static final List TEST_LIST = Collections.unmodifiableList(Arrays.asList(TEST));
public static void main(String[] args) {
TEST_LIST.set(0, "HAHA"); // wirft eine UnsupportedOperationException, keine Änderung möglich
}