【发布时间】:2016-11-18 00:13:20
【问题描述】:
我想要一个对象列表,这些对象都继承自包含函数 go() 的同一接口。
public interface goers{
public void go();
}
现在我有 3 个类都实现了 go,为了简单起见,我们只称它们为 A、B 和 C。
在另一个班级我有一个我想做的List<Class<? extends goers>>。
for (Class<? extends goers> gos : list)
{
gos.go();
}
但它不会编译,因为编译器不会从应用于列表所有成员的接口中选择 go 方法。
【问题讨论】:
-
您有
List<goers>还是List<Class<? extends goers>>?这很重要。 (第二个你不能打电话给.go(),第一个你可以。) -
更新问题,是第二个。
-
您应该遵循 Java 命名约定。
标签: java generics arraylist interface