如何讓 Java 中陣列的元素不可變?
不行,您不能讓陣列元素不可變。
但是java.util.Collections 類的unmodifiableList() 方法接受 List 介面的物件(實現其類的物件),並返回給定物件的不可變形式。使用者只能**只讀**方式訪問獲得的列表。
並且ArrayList 類的asList() 方法接受陣列並返回 List 物件。
因此,要轉換一個不可變的陣列−
獲得所需的陣列。
使用asList() 方法將其轉換為列表物件。
將獲得的列表作為引數傳遞給unmodifiableList() 方法。
示例
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
public class UnmodifiableExample {
public static void main(String args[]) {
//Creating a string array
String strArray[] = {"Raju", "Rama", "Rahman", "Rachel", "Ranbhir", "Rangan"};
//Converting the string array to list object
List<String> list = Arrays.asList(strArray);
//Converting the List object to immutable
List<String> immutable = Collections.unmodifiableList(list); System.out.println(immutable);
immutable.add("komala");
}
}輸出
[Raju, Rama, Rahman, Rachel, Ranbhir, Rangan] Exception in thread "main" java.lang.UnsupportedOperationException at java.util.Collections$UnmodifiableCollection.add(Unknown Source) at September19.UnmodifiableExample.main(UnmodifiableExample.java:19)
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
安卓
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP