私は愚かなバグがあると確信していますが、そのインタフェースのリストを必要とする関数へのインタフェースを実装するオブジェクトのリストを渡すことができません。Passign関数内のパラメータとしてのインタフェースのリスト
これは、関数のシグネチャである:
public void add(ArrayList<PairStringInterface> data){ ... }
そして、これは私がこの関数を呼び出しています方法です:私が受け取る
ArrayList<Sector> list = new ArrayList<Sector>();
add(list);
そして、これがクラスセクター
public class Sector implements PairStringInterface { ... }
ですパラメータに適切な機能がないというエラー
Error:(88, 31) error: no suitable method found for add(ArrayList<Sector>)
method PairStringSpinnerAdapter.add(ArrayList<PairStringInterface>)
is not applicable (argument mismatch; ArrayList<Sector> cannot be converted to ArrayList<PairStringInterface>)
リストを繰り返して1つのアイテムだけを受け取るメソッドを追加すると、それは機能します。
public void add(PairStringInterface elem) { ... }
ArrayList<Sector> list = ....
for(Sector s : list){
add(s);
}
http://stackoverflow.com/questions/2745265/is-listdog-a-subclass-of-listanimal-why-arent-javas-generics-implicitly-p?rq=1 – GriffeyDog