可以在实例化后将List以某种方式分配给另一个类的列表吗?

时间:2018-01-21 04:14:04

标签: java list listview javafx collections

我正在尝试在JavaFX中处理ListView

    @FXML
    ListView<? extending Animals> listView;

我希望继续将listView项分配给ObservableLists的{​​{1}}个类。

Animals

当然,我知道我不能这样做以及为什么,但由于ObservableLists处理刷新 listView.setItems(new ObservableList<Dogs>); listView.setItems(new ObservableList<Cats>); //error listView.setItems(new ObservableList<Horses>); //error ,我真的想使用ListViewObservableLists<Dogs>ObservableList<Cats>而非使用ObservableList<Horses>并将我的ObservableList<Animals>DogsCats列表转换为Horses列表。此外,我在Animals列表中需要Dogs的属性,因此无法在Dogs列表中存储Dogs

我想知道是否还有这样做,如果没有,那么绕过它的最有效方法是什么。

1 个答案:

答案 0 :(得分:1)

你可以做到

@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>等),并根据需要将其切换进出用户界面。