Tabellenspaltenerstellung mit Generics

Artorius

Mitglied Plutonium
Hallo,
ich versuche hier gerade generisch Tabellenspalten zur Anzeige in JavaFX für meine einzelnen Datenbankobjekte zu erstellen. Alle Datenbankobjekte sind, wie in den Beispiel die Klasse Address, Subklassen von DBObjekt.
Bei folgendem Code gibt es einen Compilerfehler:
The method add(TableColumn<capture#1-of ? extends DBObject,?>) in the type List<TableColumn<capture#1-of ? extends DBObject,?>> is not applicable for the arguments (TableColumn<Address,String>)

Java:
  @FXML
  protected TableView<? extends DBObject> objectTable;
   
   protected <S, T extends DBObject> TableColumn<T,S> createColumn(Class<T> t, Class<S> s, String caption, String property)
   {
     TableColumn<T,S> column = new TableColumn<T,S>(caption);
     column.setCellValueFactory(new PropertyValueFactory<T,S>(property));
     ...
  }
private void initialize() {
    objectTable.getColumns().add(createColumn(Address.class, String.class, "Firma", "company"));
    ...
}
Habe auch noch einige andere Möglichkeiten ausprobiert, komme aber auf keine grünen Zweig.
Hat jemand eine Idee, was ich hier falsch mache?
*gruß*
Artorius
 
Hallo Artorius,

soweit ich das aus der FEhlermeldung rauslesen kann, verlangt add einen Parameter und zwar: TableColumn<T extends DBObject>.
Du übergibst aber TableColumn<Address, String>
Auch wenn Address eine Unterklasse von DBObject ist, so erwartet add nur einen Genericparameter. Allerdings frage ich mich gerade selber, wieso einmal TableColumn zwei und einmal nur einen Genericparameter haben kann. Das scheint nicht möglich zu sein.
 
Zuletzt bearbeitet:
Zurück