簡體   English   中英

向ArrayList添加Null時出現UnsupportedOperationException

[英]UnsupportedOperationException When Adding Null to ArrayList

我試圖將空元素添加到ArrayList。 這是出於使用supercsv忽略列的目的: http ://supercsv.sourceforge.net/examples_partial_reading.html我正在處理多個csv文件,這些文件的標頭列數不同。

csvBeanReader.getHeader(true)返回String []。 行headers.add(null); 引發UnsupportedOperationException。 為什么? 我做錯了什么?

List<String> headers = Arrays.asList(csvBeanReader.getHeader(true));

//add null columns to headers
for(int i=0; i<1000; i++){
    headers.add(null);
}

您沒有java.util.ArrayList ,但有一些實現List東西。 這個特定的List實現不支持通過更改List的大小進行修改。 即使您add了實際的String ,您仍然會得到UnsupportedOperationException Arrays.asList javadocs

返回由指定數組支持的固定大小的列表。

為了能夠添加到該List ,請將其包裝在實際的ArrayList

List<String> headers = new ArrayList<>(Arrays.asList(csvBeanReader.getHeader(true)));

這是因為Arrays.asList返回一個不可變的列表。

http://docs.oracle.com/javase/7/docs/api/java/util/Arrays.html#asList(T ...)

嘗試進行修改時,不可變列表將引發異常。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM