1、可以通過修改底層的list,到時view被修改
2、不可以進行add、remove操作
3、但是對於mutable的對象,可以改變對象的域值
以下為一個簡單的例子:
import java.util.*;
public class Threadlocal {
static class Person {
private String firstName;
private String secondName;
public Person(String firstName, String secondName) {
this.firstName = firstName;
this.secondName = secondName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
@Override
public String toString() {
return firstName + secondName;
}
}
public static void main(String[] args) {
List list = new ArrayList();
list.add(new Person("a", "b"));
list.add(new Person("c", "d"));
List immutablelist = Collections.unmodifiableList(list);
Iterator iter = immutablelist.iterator();
while(iter.hasNext()) {
System.out.println(iter.next());
}
//change the first Person's firstName
immutablelist.get(0).setFirstName("m");
iter = immutablelist.iterator();
while(iter.hasNext()) {
System.out.println(iter.next());
}
}
}
運行結果: