我如何获得内部值和重写方法

时间:2013-01-20 10:48:02

标签: java methods

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的值??

2 个答案:

答案 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);
}
}