2013-01-20 24 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循環中調用該方法。我不知道我是否完全理解你的問題。

相關問題