我的目标是在一个树(确切地说是一个TableTreeView)中添加所有子节点时完成一个过程。
node.getTreeItem().getChildren.add(playlist)
在我的代码的不同部分被调用,我试图尽可能保持最佳实践…所以让我们保持简单,说我肯定会在拖放完成时调用它,以及在构建树的时候。
我的"播放列表"可以有3种不同的类型(在enum类中):
- 文件夹(包含其他播放列表)
- LIST(包含用户添加的音轨)
- 查询(包含作为查询结果的音轨)
- 错误(不应该设置,但对调试等有用)
我想在我的'扩展'TreeItem<Playlist>
上实现一个方法,如getPlaylistType()
。此方法将返回播放列表的类型。
问题:我的直觉会说我应该重写node.getTreeItem().getChildren.add(playlist)
以一种方式设置类型:
- 有儿童播放列表->文件夹
- 无儿童播放列表&&查询存在——>查询
- 无儿童播放列表&&查询不存在——>
- 任何其他状态->可知/错误
- 这个方法正确吗?
- 如何重写'add(…)'方法?
为什么将node.getTreeItem().getChildren.add(playlist)
暴露给软件的不同部分?如果你只是把它包装在你自己的类中,你可以公开它,并在相应的add
方法被调用时做任何你想做的事情。