それは可能であるべきではありませんか?そうでない場合、同様にそれを行う方法はありますか?
public abstract class BaseItem {
}
public class SpecificItem extends BaseItem {
public int value;
}
public class AnAdapter{
public AnAdapter(SparseArray<BaseItem> items){
}
}
public class DifferenClass{
public DifferenClass(){
SparseArray<SpecificItem> items = new SparseArray<SpecificItem>();
AnAdapter anAdapter = new AnAdapter(items); // here is wrong type
}
}
-------- 編集: 更新されました。特定の要素をより一般的なコンテナに追加する唯一の方法ですか? このすべてのキャスティングで少し汚れているように見えます。しかし、動作します...
public abstract class BaseItem {
}
public class SpecificItem extends BaseItem {
public int value;
}
public class AnAdapter{
public AnAdapter(SparseArray<? extends BaseItem> items){
}
}
public class DifferenClass{
DifferenClass(){
SparseArray<? extends BaseItem> items = new SparseArray<BaseItem>();
((SparseArray<SpecificItem>)items).append(0,new SpecificItem());
}
}