如何为 ArrayList 设置 CellValueFactory return 类型
How to setCellValueFactory return type for ArrayList
我在这段代码中有以下错误:无法推断 ReadOnlyListWrapper<> 的类型参数
我的 return 类型应该是什么样的?我需要为所有列中的每个节点保存 arraylist。但是我不能return它。
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);
}
});
ReadOnlyListWrapper<T>
实现了 ObservableValue<ObservableList<T>>
,这不是您所需要的,因为您声明了对 return 和 ObservableValue<ArrayList<T>>
的回调(T
只是String
这里)。
所以我认为你只需要
return new ReadOnlyObjectWrapper<ArrayList<String>>(result);
你可以省略泛型类型:
return new ReadOnlyObjectWrapper<>(result);
只是评论:我认为您可以通过定义一些实际的数据模型 类 让您的生活变得更轻松,而不是试图将您的数据强制放入各种集合实现中。
我在这段代码中有以下错误:无法推断 ReadOnlyListWrapper<> 的类型参数 我的 return 类型应该是什么样的?我需要为所有列中的每个节点保存 arraylist。但是我不能return它。
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);
}
});
ReadOnlyListWrapper<T>
实现了 ObservableValue<ObservableList<T>>
,这不是您所需要的,因为您声明了对 return 和 ObservableValue<ArrayList<T>>
的回调(T
只是String
这里)。
所以我认为你只需要
return new ReadOnlyObjectWrapper<ArrayList<String>>(result);
你可以省略泛型类型:
return new ReadOnlyObjectWrapper<>(result);
只是评论:我认为您可以通过定义一些实际的数据模型 类 让您的生活变得更轻松,而不是试图将您的数据强制放入各种集合实现中。