這個問題在這里已經有了答案: 我們如何確保在不可變物件中定義的 ArrayList 的不變性? (3 個回答) 12 小時前關閉。
如果我希望另一個類能夠訪問陣列串列的內容,例如回圈遍歷它以查看里面的內容而不允許它實際添加或洗掉任何元素,這可能嗎?
在我看來,我認為應該有某種方法來發送 ArrayList 的不可變版本。
如果可能的話,有人可以給我舉個例子嗎?
謝謝你。
uj5u.com熱心網友回復:
方法很多...
最簡單的方法是將您的 ArrayList 包裝在一個不可修改的 list 中,使用:
Collections.unmodifiableList(yourArrayList)
這將回傳串列的不可修改視圖。
請注意,這并不意味著專案本身無法修改。
其他替代方案可能是:
- 將串列轉換為陣列(使用
toArray(T[] a),并將其傳遞給Arrays.asList(),這也會發回一個不可修改的串列。 - 如果在您的代碼中使用其他一些庫,例如 Guava,您可以呼叫
ImmutableList.copyOf()或其他變體。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/318423.html
