final型別的map或者arraylist修改資料
阿新 • • 發佈:2019-01-01
問題:
比如
final Map map =new HashMap();
可以往map裡put資料
final List list =new ArrayList();
可以往list裡add資料
但是
final String s =“123”;
然後s就不可修改資料了
解答
final List<String> list = new ArrayList<String>();
List<String> list1 = new ArrayList< String>();
List<String> list2 = new ArrayList<String>();
list1 = list2;
list = list1;//這行是不能通過編譯的
list定義為final是指該引用是final啦,但是list裡面的值不是final的,所以可以修改。
對List或map的add或put操作,沒有修改引用。而對字串的修改,是整個引用都要指向一個不同的字串了。
final 只是表示引用不可以修改,
如果你先寫
final Map map =new HashMap();
再寫
map =new HashMap();
同樣會報錯