尝试将接口的实现强制转换为接口时遇到意外错误(“不可转换的类型”)。
我得到了以下界面
public interface IAbc {...}
以及另一个类中的以下方法
public class SomeClass {
public doSomething(Iterable<IAbc> abcs) {...}
}
我写了以下课程
public class MyAbc implements IAbc {...}
我在其他地方有这样的方法
public class MyClass {
public Iterable<MyAbc> getMyAbcs() {...}
}
我希望我可以将它们很好地链接起来,如下所示:
public void doSomethingWithThings(SomeClass sc, MyClass mc) {
sc.doSomething(mc.getMyAbcs());
}
但 NetBeans 给了我以下错误:
错误:需要不可转换的类型
sc.doSomething(mc.getMyAbcs());
:
发现可迭代:可迭代
我尝试铸造,但Iterable<IAbc> abc = (Iterable<IAbc>)mc.getMyAbcs();
导致同样的错误。
如何将接口实现的 Iterable 传递给期望接口 Iterable 的方法?