java - 实例化后,列表可以以某种方式分配给另一个类的列表吗?

标签 java list listview javafx collections

我正在尝试处理 ListView在 JavaFX 中。

    @FXML
    ListView<? extending Animals> listView;

我想连续分配listView项目至ObservableLists扩展类 Animals .

    listView.setItems(new ObservableList<Dogs>);
    listView.setItems(new ObservableList<Cats>); //error
    listView.setItems(new ObservableList<Horses>); //error

当然,我知道我不能这样做以及为什么,但是由于 ObservableLists 处理刷新 ListView ,我真的很想使用 ObservableLists<Dogs> , ObservableList<Cats> , ObservableList<Horses>而不是使用ObservableList<Animals>并转换我的 Dogs , Cats ,和Horses列表至Animals列表。我还需要Dogs我的 Dogs 中的属性列表,因此存储 DogsAnimals列表不是一个选项。

我想知道是否有办法做到这一点,如果没有,绕过它的最有效方法是什么。

最佳答案

你可以做到

@FXML
private ListView<Animal> listView ;

然后

ObservableList<Dog> dogs = FXCollections.observableArrayList(...);
listView.getItems().setAll(dogs);

ObservableList<Cat> cats = FXCollections.observableArrayList(...);
listView.getItems().setAll(cats);

这可能会或可能不会工作,但您是否从 ListView 检索项目? (如果你需要这样做的话)。您还可以考虑创建多个ListView s( ListView<Dog>ListView<Cat> 等),并根据需要将它们切换到 UI 中或从 UI 中切换出来。

关于java - 实例化后,列表可以以某种方式分配给另一个类的列表吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48363609/

相关文章:

java - 如何使用 Java Spring 从缓存中删除特定键

list - 如何在 lisp 中制作成对列表?

python - 为什么退出递归调用时保留一些变量或列表,而另一些则不保留?

java - 如何在启动时检查特定复选框?

Android 键盘与 ListView 重叠

java - 有人听说过标准属性部署名称吗?

Java ((4-2)/4) = 0.0 转换为 double 后不是 0.5

java - Android JobScheduler 执行多次

Python 检查二叉树中叶子的路径 python 给出叶子中的数据

java - 在android中的 ListView 中对连接的wifi进行排序