0
A
回答
1
java中的數組是參考類型。當你聲明一個數組final
時,你聲明的是數組對象引用本身final
,而不是數組包含的元素。所以雖然你不能改變數組引用,但你仍然可以改變數組中的單個元素。
爲了得到你想要的效果,你必須使用Collections.unmodifiableList
或類似的東西。
2
因爲最終適用於數組引用,而不是內容。
您可以修改數組內容,但不能說,重新實例化數組。
0
數組支持,但對其他任何引用變量來說都沒有什麼不同:您可以更改變量的狀態,但不能更改該變量引用的對象,此處爲數組對象。對於數組,狀態是項目引用。
0
final int[] test = new int[3];
test = new int[2]; //Error here
(最終適用於引用,而不是對象數據)
1
考慮這些
final int a[]={11,2};
int b[]={};
a=b;// this will compile wrong
a[1]=1;//this will compile fine
因爲,如果你正在聲明最終陣列那麼就意味着在陣列參考不能被改變,但你可以明顯改變內容
0
如果你需要一個不可變的數據結構,List
(如果需要,你可以使用ArrayList
)是你想去的地方。如果你真的需要它是一個數組,你只需要用getter方法創建你自己的數據結構。
0
Java中的final影響變量,它與您指定給它的對象無關。
final String[] myArray = { "hi", "there" };
myArray = anotherArray; // Error, you can't do that. myArray is final
myArray[0] = "over"; // perfectly fine, final has nothing to do with it
相關問題
- 1. 爲什麼eval()不適用於數組
- 2. 爲什麼Path = SelectedItem.Content適用於WPF中的組合框但不適用於Silverlight?
- 3. 爲什麼地圖/過濾器...不適用於無數數組?
- 4. 爲什麼Java允許嵌套類中的「public static final」用於簡單類型而不是數組?
- 5. 爲什麼這個語法不適用於用nashorn創建Java String數組
- 6. 爲什麼SimpleDateFormat :: format(Long)適用於Java?
- 7. Array#爲什麼洗牌!不適用於嵌套數組?
- 8. 爲什麼我的數組不適用於fit_traansform()?我能做什麼?
- 9. 爲什麼Java Web Start不適用於64位Java環境?
- 10. 爲什麼計數函數不適用於Spark中的mapvalues?
- 11. Hibernate 5.1.0.Final format_sql不適用於SchemaExport
- 12. 爲什麼我的java KeyListener不適用於我的ubuntu?
- 13. 爲什麼Debug&Release爲.Net構建,但不適用於Java?
- 14. 爲什麼我的列數不適用於Chrome中的Bootstrap?
- 15. 爲什麼final變量用在java的內部類中
- 16. 爲什麼public static final string不能用在java開關
- 17. 爲什麼要在Java中聲明一個不可變類final?
- 18. 爲什麼列表<generic>不適用於Java的mybatis?
- 19. 爲什麼在android中使用[static final]?
- 20. 爲什麼這不適用於Firefox?
- 21. 爲什麼document.title不適用於SVG?
- 22. 爲什麼+ =不適用於列表?
- 23. 爲什麼setParameter()不適用於ServletRequest?
- 24. 爲什麼'time'不適用於'echo'?
- 25. 爲什麼Intelligencia.UrlRewriter不適用於iis6?
- 26. 爲什麼JavaScript不適用於Google Chrome?
- 27. 爲什麼setOnClickListener()不適用於GridView(AdapterView)
- 28. jquery:爲什麼這不適用於Chrome?
- 29. 爲什麼長度不適用於NSString?
- 30. 爲什麼reloadRowsAtIndexPaths不適用於iOS 5.0?
ArrayList是一個「不可變數據結構」嗎? –
@HovercraftFullOfEels:你可以重寫'ArrayList'的推杆方法來執行「不變性」。是的,這有點哈克,我會用一個'Collection'。 – AaronB
Collections.unmodifiableList生成指定列表的不可修改視圖。 –