从 List<MyClass> 转换为 List<Interface>

Pie*_*vis 5 java casting interface object

我想我在编写代码时犯了一些错误。我有一个实现接口的类 MyClass,现在我有一个通用的接口列表作为参数的方法。我想通过传递一个列表来使用我的方法。我无法从 List 转换到 List(我认为我可以)。那么,我该怎么做才能使我的代码正常工作?这里有一个例子:

List<MyClass> lista = returnMyClassList();
myMethod((List<Interface>) lista); //this doesn't work

//myMethod signature
public void myMethod(List<Interface> struttura);
Run Code Online (Sandbox Code Playgroud)

谢谢你的帮助。

Boh*_*ian 7

使用类型的上限Interface<? extends Interface>

下面是使用 JDK 中的类来说明的可编译代码:

public static void myMethod(List<? extends Comparable> struttura) {}

public static void main(String[] args) {
    List<Integer> lista = null;
    myMethod(lista); // compiles OK
}
Run Code Online (Sandbox Code Playgroud)