我想要一个对象列表,这些对象全部从包含函数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/

10-12 02:16