在Java中返回接口和列表的类型和参数?

时间:2011-04-19 17:24:41

标签: java list generics

我正在尝试在三个类中编写一个函数来比较同一个类的两个对象列表。

一般理念

List<Toads> aTList = ...
List<Toads> bTList = ...
List<Toads> tResult = compare(aTList , bTList ); 

List<Frogs> aFList = ...
List<Frogs> bFList = ...
List<Frogs> fResult = compare(aFList , bFList );

注意:ToadFrog都可以扩展一个提供必要功能以进行比较的界面

问题是,在比较之后,我想使用返回的列表(tResultfResult)及其特定类型(ToadFrog)。

我尝试了类似Java interfaces and return types指定的内容,但我无法排列所有类型。

我还尝试使用<? extends Amphibian>之类的参数作为参数并将类型返回到compare,但返回的类型为Amphibian

3 个答案:

答案 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>)