2013-01-20 23 views
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); 
} 

我如何获得内部调用方法类型的值?我怎样才能得到一个值和一个重写方法

+3

你想做什么,它不工作? – keyser

回答

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

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

相关问题