2016-04-23 7 views
1

Ich frage mich, ob es möglich ist, solche Treeitems zu TreeView hinzufügen, die Unterklassen der Wurzel sind?JavaFX TreeView: Ist es möglich, TreeItems TreeView hinzuzufügen, die Unterklassen des Root sind?

wie auf diese Weise ..

TreeView<Human> tree = new TreeView<>(); 

Student student = new Student(); 
TreeItem<Student> studentItem = new TreeItem<>(student); 

Human human = new Human(); 
TreeItem<Human> root = new TreeItem<>(human); 

root.getChildren().add(studentItem); 

tree.setRoot(root); 

Antwort

0

Ist es möglich, TreeItem s TreeView hinzuzufügen, die Unterklassen der Wurzel sind?

Ja, absolut. TreeItem<Student> ist jedoch keine Unterklasse von TreeItem<Human>, da die Parameter nicht übereinstimmen.

Die folgende würde kompilieren:

Student student = new Student(); 
TreeItem<Human> studentItem = new TreeItem<>(student); 
... 
root.getChildren().add(studentItem); 

Und würde so die folgenden:

Student student = new Student(); 
TreeItem<Student> studentItem = new TreeItem<>(student); 
... 
root.getChildren().add((TreeItem) studentItem); 

Ein Hinweis auf den letzteren Code-Schnipsel: Es ist sicher TreeItem<Student> als TreeItem<Human> zu verwenden, aber diese Art Casting sollte generell vermieden werden, da es die Typprüfungen für die Typargumente des Compilers umgeht.