问题描述
我将元素添加到ObservableList<List<String>>
时,出现UnsupportedOperationException
。
代码(这里我试图在动态表格视图中添加列) :
private ObservableList<List<String>> fnlData;
.
.
fnlData = FXCollections.observableList(jdata);
.
.
public void addColumn(){
for (int i = 0; i < fnlData.size(); i++){
if (fnlData.get(i)!=null && fnlData.get(i).size() > indexC) {
fnlData.get(i).add(indexC, ""); // <- here occurs the error
}
}
finalTable.getSelectionModel().clearSelection();
finalTable.getItems().clear();
finalTable.getColumns().clear();
createColumns(clms++);
finalTable.getItems().addAll(fnlData);
}
1楼
集合的实现可以随意执行任意数量的操作,如果未实现,则抛出UnsupportedOperationException
。
我建议您检查所使用的特定集合的文档。
2楼
好,我解决了...
我改变了这个:
private List<List<String>> jdata = new LinkedList<>();
String[] splitted;
.
.
splitted=(lines.split(";"));
jdata.add(Arrays.asList(splitted));
到这个:
private List<List<String>> jdata = new LinkedList<>();
String[] splitted;
.
.
splitted=(lines.split(";"));
LinkedList ll = new LinkedList(Arrays.asList(splitted));
jdata.add(ll);
因为jdata的内部列表( List<String>
)是ArrayList,但是我需要一个LinkedList ...
感谢ljgw