gpt4 book ai didi

java - 如何在 SparseArray 容器中使用扩展类?

转载 作者:行者123 更新时间:2023-11-30 07:12:57 26 4
gpt4 key购买 nike

难道这不可能吗?如果没有,那么有没有类似的方法?

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());
}
}

最佳答案

使用wildcards

public class AnAdapter{
public AnAdapter(SparseArray<? extends BaseItem> items){
}
}

关于java - 如何在 SparseArray 容器中使用扩展类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19911714/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com