2016-04-23 14 views
1

ルートのサブクラスであるTreeViewにそのようなツリーアイテムを追加することができるのだろうか?この方法のようにJavaFX TreeView:ルートのサブクラスであるTreeViewにTreeItemを追加できますか?

..

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); 

答えて

0

がルートのサブクラスであるTreeViewTreeItem秒を追加することが可能ですか?

はい、絶対に。ただし、TreeItem<Student>は、パラメータが一致しないため、TreeItem<Human>のサブクラスではありません。

次のコンパイルになります。

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

それで次になります。

後者のコードスニペットの
Student student = new Student(); 
TreeItem<Student> studentItem = new TreeItem<>(student); 
... 
root.getChildren().add((TreeItem) studentItem); 

注:それはTreeItem<Human>としてTreeItem<Student>を使用しても安全です、しかし、この種コンパイラによって行われた型引数の型チェックを回避するので、一般的に避けるべきです。

関連する問題