for (final Type type : category.getTypes()) {
TableColumn<Item, Integer> col = new TableColumn<Item, Integer>(type.getName());
col.setCellValueFactory(new Callback<CellDataFeatures<Item>,
ObservableValue<Integer>>() {
@Override
public void call(CellDataFeatures<Item> item) {
return item.getValue().getPrice(type);
}
});
priceColumn.add(col);
}
如何在调用方法中获取type的值??
答案 0 :(得分:0)
看起来你必须编写另一种方法void call(CellDataFeatures<Item> item, Type type)
。这样你就可以在for循环中调用该方法。我不知道我是否完全理解你的问题。
答案 1 :(得分:0)
创建一个setType()并将该类型保存为for循环中第一个语句的一部分。创建一个静态getType并访问Callback类中的类型。
// New Modifed code
Class Test
{
Type type = null;
public void setType(type)
{
this.type = type;
}
public static Type getType()
{
return type;
}
for (final Type type : category.getTypes()) {
setType(type);
TableColumn<Item, Integer> col = new TableColumn<Item, Integer>(type.getName());
col.setCellValueFactory(new Callback<CellDataFeatures<Item>,
ObservableValue<Integer>>() {
@Override
public void call(CellDataFeatures<Item> item) {
return item.getValue().getPrice(Test.getType());
}
});
priceColumn.add(col);
}
}