我在此代码中有以下错误:无法推断ReadOnlyListWrapper的类型参数<> 我的返回类型应该如何?我需要为所有列中的每个节点保存arraylist。但我无法归还。
for (Entry<String, String> ent : dc.getSortedOrgAll().entrySet()) {
TreeTableColumn<String, ArrayList<String>> col = new TreeTableColumn<>(
ent.getValue());
col.setCellValueFactory(new Callback<TreeTableColumn.CellDataFeatures<String, ArrayList<String>>, ObservableValue<ArrayList<String>>>() {
@Override
public ObservableValue<ArrayList<String>> call(
CellDataFeatures<String, ArrayList<String>> param) {
TreeMap<String, List<String>> temp = (TreeMap<String, List<String>>) dc
.getFuncTypeOrg().clone();
ArrayList<String> result = new ArrayList<>();
for (int i = 0; i < temp.size(); i++) {
List<String> list = temp.firstEntry().getValue();
String key = temp.firstEntry().getKey();
// root.getChildren();
if (list.get(1).equals("Papier")) {
System.out.println(list.get(1));
}
if (list.get(1).equals(param.getValue().getValue())
&& list.get(5).equals(col.getText())) {
result.add(list.get(2));
if(list.size()==9)
result.add(list.get(list.size()-1));
else result.add("White");
} else {
temp.remove(key);
// result = null;
}
}
return new ReadOnlyListWrapper<>(result);
}
});
答案 0 :(得分:1)
ReadOnlyListWrapper<T>
实现了ObservableValue<ObservableList<T>>
,这不是您需要的,因为您声明回调返回ObservableValue<ArrayList<T>>
(T
只是String
)。
所以我认为你只需要
return new ReadOnlyObjectWrapper<ArrayList<String>>(result);
你可以省略泛型类型:
return new ReadOnlyObjectWrapper<>(result);
只是评论:我认为通过定义一些实际的数据模型类可以让您的生活更轻松,而不是试图强制您的数据进入各种集合实现。