我有一些实现通用接口的对象。假设我Apple
和其他一些Fruits
实施HasSeed
并返回他们的种子数量的人。
然后我有一个服务方法,在这里调用它FruitProcessor
,带有一个addAll(List<HasSeed>)
类。我想我可以传入一个实现HasSeed
接口的对象列表,比如一个苹果列表。
但我不能,编译器抱怨它不适用于参数。还有一件事:我无法List<Apple>
将List<HasSeed>
. 但是我需要一个可以在我的 FruitProcessor 中获取任何对象列表的方法,然后getSeeds()
无论它是什么对象都可以调用。
我该如何适应以下内容?
class Fruit {};
class Apple extends Fruit implements HasSeed {
@Override
int getSeeds() {
return 5; //just an example
}
}
class FruitProcessor {
static void addAll(List<HasSeed> list) {
for (HasSeed seed : list) {
Sysout("the fruit added contained seeds: " + list.getSeeds());
}
}
}
class FruitStore {
List<Apple> apples;
FruitProcessor.addAll(apples); //The method addAll(List<HasSeed>) in the type FruitProcessor is not applicable for the arguments (List<Apple>)
}