在java中实现两个接口时的方法冲突,当键入返回值时

时间:2016-07-20 23:09:00

标签: java generics interface extends

我想实现2个接口

interface Bar { 
  List<Beers> getDrinks();
}

interface Fridge {
   List<Soda> getDrinks();
}

我想实现一个满足两者的类。

class Backyard<T extends Beer, Soda> implements Bar, Fridge {
    List<T> getDrinks() { return null; } 
}

问题是,当我指定为List类型时,它表示我试图返回不兼容的类型。这可以在Java 7中实现吗?

如果我改变我的例子让getDrinks()只返回Beer或Soda,那么我可以在我的Backyard课程中没有问题返回T.

请注意;我的例子有点做作;实际上我正在尝试包装2个版本的API(我无法控制)。对于我的特定用例,它有点令人沮丧,因为我将返回null或抛出不支持的操作异常,因为我只需要为我的用例组合一组有限的功能。

0 个答案:

没有答案