java - Android - 将多个列表 <AbstractType> 传递给 BaseAdapter

标签 java android baseadapter

我有一个抽象类 AbstractCard,我想将其用作列表数据以传递给我的 BaseAdapter 。我不想通过 List<AbstractCard>尽管到BaseAdapter而是传递 List<Object>扩展了 AbstractCard。

例如,我有一个扩展 AbstractCard 的 Card 类。在我的 BaseAdapter 中,我有:

private List<AbstractCard> abstractCards = new ArrayList<AbstractCard>();

public void setData(List<AbstractCard> abstractCards) {
    this.abstractCards = abstractCards;
}

现在,由于 Card 扩展了 AbstractCard,我认为我可以传递 List<Card> setData() 但它显然给了我错误。我怎样才能做到这样我需要一个基于其父类的类型?

最佳答案

您是否尝试过:

private List<? extends AbstractCard> abstractCards = new ArrayList<AbstractCard>();

public void setData(List<? extends AbstractCard> abstractCards) {
    this.abstractCards = abstractCards;
}

然后:

someClass.setData(new ArrayList<ConcreteCard>());

关于java - Android - 将多个列表 <AbstractType> 传递给 BaseAdapter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23823098/

相关文章:

java - Android:在白色背景下跟踪 switchcompat 不可见

java - 调用任何 AccountManager getAccounts 都会使我的应用程序停止

如果从数据项中删除项目,android notifyDataSetChanged 不工作

android - 当适配器包含带有 onClickListener 的按钮时,OnItemClickListener 无法正常工作

java - 写入字节数组时出现 IOException

java - 如何为 Ant 指定不同的 build.properties 路径?

java - 获取 onVisibilityChange ActionListener

java - Eclipse 在循环中执行 java 应用程序

java - 停止 Eclipse/Gradle 生成 .project 和 .settings/

android - 当 ListView 行项目中有隐藏 View 时, fragment 不尊重匹配父高度