Visto che non ci sono interfacce di collezioni non modificabili distinte, non ti stai solo impostando per le eccezioni di runtime restituendo le raccolte non modificabili dalle invocazioni dei metodi? Esempio:
public class Start {
public static void main(String[] args) {
try {
List<String> listA = getListA();
listA.add("whatever");
System.out.println("listA: " + listA.get(0));
List<String> listB = getListB();
listB.add("whatever");
} catch(Exception e) {
System.out.println("SURPRISE!!! you should have known that listB was unmodifible.");
}
}
static List<String> getListA() {
return new ArrayList();
}
static List<String> getListB() {
return Collections.unmodifiableList(new ArrayList());
}
}
- Nel migliore dei casi, in javadoc potrei scrivere in grassetto " la Collezione restituita non è modificabile !"?
- In quale scenario sta tornando le Unmodifiable Collections vale il rischio di eccezioni di runtime?