TableColumn
から別のものにCellFactory
をコピーしようとしています。実行している問題はジェネリックである。2つのオブジェクトで同じ汎用ワイルドカードを使用する
問題table.getColumns()
がTableColumn<X, ?>
のリストを返し、私は同じTablecolumn<X, ?>
パラメータで、新しい列を作成したいが、私は二、?
パラメータを知るために方法がないということで。
for (TableColumn<X, ?> col : table.getColumns()) {
TableColumn<X, ?> newCol = new TableColumn<>();
newCol.setCellValueFactory(col.getCellValueFactory()); // Error <X, ?> != <X, ?>
}
両方のインスタンスで使用される汎用タイプを定義できますか?または、実行時に一般情報が失われるため、これは不可能ですか?
編集:TableColumn<X, Object>
にキャスト
が動作しているようですが、これは非常に間違って感じていると私はむしろObject
にキャストに依存しないでしょう。
for (TableColumn<X, ?> col : table.getColumns()) {
TableColumn<X, Object> tempCol = (TableColumn<X, Object>) col;
TableColumn<X, Object> newCol = new TableColumn<>();
newCol.setCellValueFactory(tempCol.getCellValueFactory());
}
私は、これはそれを行うための唯一の方法かもしれない考え出したが、別を必要としないように期待していましたメソッド..ありがとう! – Chris
他の方法で特定のキャプチャを導入できないため、@Chris - 別の方法が唯一の方法です。 – BeeOnRope