如果我有一个名为 Cue
的类实现 Tickable
.后来,我有一个像这样的可观察列表:ObservableList<Cue> oList
. oList
工具 Iterable<Cue>
(这就是 ObservableList
的声明方式)。
我有一个函数需要 Iterable<Tickable>
.我如何让它接受 ObservableList<Cue>
提示是 Tickable
ObservableList 是一个 Iterable
.出于某种原因,我无法在它们之间进行种姓转换或自动向上转换。有什么办法吗?
最佳答案
你不能从 Iterable<Cue>
转换到Iterable<Tickable>
, 因为即使 Cue
是 Tickable
, 一个 Iterable<Cue>
不是 Iterable<Tickable>
,因为 Java 的泛型是不变的。
让一个方法接受一个ObservableList<Cue>
, 方法参数类型为 Iterable<Cue>
或使用有界通配符——Iterable<? extends Tickable>
.
关于java - `Iterable` 的接口(interface)转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20689499/