我正在尝试在三个类中编写一个函数来比较同一个类的两个对象列表。
一般理念
List<Toads> aTList = ...
List<Toads> bTList = ...
List<Toads> tResult = compare(aTList , bTList );
List<Frogs> aFList = ...
List<Frogs> bFList = ...
List<Frogs> fResult = compare(aFList , bFList );
注意:Toad
和Frog
都可以扩展一个提供必要功能以进行比较的界面
问题是,在比较之后,我想使用返回的列表(tResult
和fResult
)及其特定类型(Toad
和Frog
)。
我尝试了类似Java interfaces and return types指定的内容,但我无法排列所有类型。
我还尝试使用<? extends Amphibian>
之类的参数作为参数并将类型返回到compare
,但返回的类型为Amphibian
。
答案 0 :(得分:2)
也许这就是你要找的东西?
public class AmphibianComparer<T extends Amphibian> {
public List<T> compare(List<T> listOne, List<T> listTwo) {
...
}
}
答案 1 :(得分:1)
public <T extends Amphibian> List<T> compare(List<T> a, List<T> b);
答案 2 :(得分:1)
您实际上并没有为compare
提供签名。这是你想要的吗?
<T extends YourInterface> T compare(List<T>, List<T>)