Ein Beispiel, dass Josh über List
wäre spricht, das einen veränderbaren Typen (add()
, remove()
, etc), aber Sie können zuweisen ein unveränderlich Instanz es:
public static final List<String> NAMES = Collections.unmodifiableList(Arrays.asList("foo", "bar")); // immutable
By the way, eine große Beispiel für etwas, das wie eine Konstante aussieht, ist aber nicht, ist eine Date
Konstante:
public static final Date EPOCH = new Date(0);
aber dann kann ein Code tun:
EPOCH.setTime(123456789); // oops!
Date
ist wandelbar! Jeder wird solch eine Veränderung sehen.
In constrast dabei ist, so etwas wie String
, die ist unveränderlich:
public static final String NAME = "Agent Smith"; // immutable
Effective Java. ** https://books.google.es/books?id=ka2VUBqHiWkC&pg=PA238&lpg=PA238&dq=%22static+final+field+has+a+mable_reference+type%22&source=bl&ots=yZIfJew4P3&sig=tvjvW3oooSNxNRaGF57ru2VwL8c&hl = es & sa = X & ved = 0ahUKEwi-1Z3S5P7LahULVxoKHRIfCToQ6AEILTAC# v = Seite & q =% 22Static% 20Final% 20Field% 20Has% 20A% 20Mutable% 20Referenz% 20Typ% 22 & f = false – Nirekin