0
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);
}

如何在调用方法中获取类型的值?

4

2 回答 2

0

看起来你必须编写另一个方法void call(CellDataFeatures<Item> item, Type type)。这样,您就可以在 for 循环中调用该方法。我不知道我是否完全理解你的问题。

于 2013-01-20T10:57:02.177 回答
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);
}
}
于 2013-01-20T11:16:31.327 回答