インターフェイスの実装をインターフェイスにキャストしようとすると、予期しないエラー(「変換不可能なタイプ」)が発生します。
私は次のインターフェースを与えられています
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の実装を渡すにはどうすればよいですか?