2013-10-21 49 views
0

假設我想在TableViewBuilder中使用泛型。以下工作,但 我收到.columns調用的類型安全警告。它會自動創建 型TableColumn<Thing,?>使用不同TableColumn類型的JavaFX 2 TableViewBuilder的泛型

TableColumn<Thing, Integer> anIntColumn = ... 
TableColumn<Thing, Double> aDoubleColumn = ... 
TableColumn<Thing, String> aStringColumn = ... 
TableView<Thing> table = 
       TableViewBuilder 
         .<Thing> create() 
         .items(tableDataList) 
         .columns(anIntColumn, aDoubleColumn, aStringColumn).build(); 

數組有一些語法我失蹤?

回答

1

不要使用TableViewBuilder和其他建築商 - 他們是deprecated及可能不會在將來的Java版本,比如Java正常工作8

+0

醫生,當我這樣做的時候很痛。所以不要這樣做。 :)問題是,我得到了table.getColumns()。addAll(c1,c2,c3等)的相同問題。 –

+0

使用[sscce](http://sscce.org/)爲源代碼創建一個新問題(不使用構建器),它會產生相同的問題警告,我敢肯定有人會告訴你如何消除警告。 – jewelsea

+0

使用add(aSingleColumn)而不是addAll(col1,col2)可以刪除警告。感謝您的建議。 –

1
  1. jewelsea已經建議不要使用建設者,增加了性能您擁有的問題無法向他們推斷任何仿製藥。 .build()的結果始終爲<Object, Object>。一種可能性是使用演員。

  2. 如果您有可能,請使用FXML。

  3. 如果您需要的代碼,你可以做這樣的事情

final TableView<Boolean> table = new TableView<Boolean>(); 
final TableColumn<Boolean, String> col = new TableColumn<Boolean, String>(); 
table.getColumns().add(col);