共計 1004 個字符,預計需要花費 3 分鐘才能閱讀完成。
可以通過以下幾種方法來確保一個集合不能被修改:
- 使用不可變集合:Java 提供了一些不可修改的集合類,如
Collections.unmodifiableList
、Collections.unmodifiableSet
和Collections.unmodifiableMap
。這些方法返回的集合只能讀取元素,而不能修改。
List list = new ArrayList();
list.add("item1");
list.add("item2");
List unmodifiableList = Collections.unmodifiableList(list);
unmodifiableList.add("item3"); // 拋出 UnsupportedOperationException 異常
- 使用只讀視圖:Guava 庫提供了一個
ImmutableXXX.copyOf
方法,可以創建一個集合的只讀視圖。
List list = new ArrayList();
list.add("item1");
list.add("item2");
List readOnlyList = ImmutableList.copyOf(list);
readOnlyList.add("item3"); // 拋出 UnsupportedOperationException 異常
- 使用 Java 9 的不可變集合:Java 9 引入了不可變集合類,如
List.of
、Set.of
和Map.of
。這些方法返回的集合是不可修改的。
List list = List.of("item1", "item2");
list.add("item3"); // 拋出 UnsupportedOperationException 異常
- 使用防御性編程:在代碼中添加必要的檢查和限制,確保集合不會被修改。例如,在方法的參數中使用
Collections.unmodifiableList
方法返回的集合,或者在方法內部創建一個副本并返回。
private List list = new ArrayList();
public List getList() {return Collections.unmodifiableList(list); // 返回不可修改的集合
}
public void addItem(String item) {if (item != null) {list.add(item); // 添加元素到原始集合
}
}
丸趣 TV 網 – 提供最優質的資源集合!
正文完
發表至: Java
2023-12-22