我想要一个对象列表,这些对象全部从包含函数go()的同一接口继承。
public interface goers{
public void go();
}
现在,我有3个都可以实现的类,为简单起见,我们仅将它们称为A,B和C。
在另一堂课中,我有一个想做的
List<Class<? extends goers>>
。for (Class<? extends goers> gos : list)
{
gos.go();
}
但这不会编译,因为编译器不会从应用于列表所有成员的接口中选取go方法。
最佳答案
List<Class<? extends goers>>
没有可以调用goers
的.go()
实例。您只有类,而不是该类的任何实例。没有什么可以调用.go()
了。
您可以尝试实例化这些类,或者首先使用List<goers>
,这可以让您称呼接口的使用方式。
关于java - Java:从扩展其的泛型列表中调用接口(interface)的函数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38385018/