Während eine kleine API entwerfen, ich war über einen statischen Wert zu schreiben, dass Verweise auf ein Array von String: public static final String[] KEYS={"a","b","c"}
ich gefunden habe, dies als eine ‚Sicherheitslücke‘ gekennzeichnet wird in Joshua Bloch ‚Effective Java‘ Punkt 14, wo er als Alternative vorgeschlagen, erklärt te Array ‚private‘ und ein öffentliches Getter schaffen, die eine unveränderbare Liste zurückzugibt:ein public static final Array Modifizieren
return Collections.unmodifiableList(Arrays.asList(KEYS))
ich kann einfach nicht verstehen, warum würde dies erforderlich sein, wobei die Anordnung in der ursprünglichen Anweisung wird als final deklariert, obwohl ihre public und ihre Elemente unveränderlich sind, wie könnte das von einem externen Code geändert werden?
Upvoted für die Erklärung 'final', scheint wie eine Menge Leute dieses Schlüsselwort nicht verstehen. – Manu