Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/328.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Android-通过多个列表<;抽象类型>;到基本适配器_Java_Android_Baseadapter - Fatal编程技术网

Java Android-通过多个列表<;抽象类型>;到基本适配器

Java Android-通过多个列表<;抽象类型>;到基本适配器,java,android,baseadapter,Java,Android,Baseadapter,我有一个抽象类AbstractCard,我想用它作为列表数据传递给我的BaseAdapter。我不想将列表传递给BaseAdapter,而是传递扩展抽象卡的列表 例如,我有一个扩展了AbstractCard的类卡片。在我的BaseAdapter中,我有: private List<AbstractCard> abstractCards = new ArrayList<AbstractCard>(); public void setData(List<Abstrac

我有一个抽象类AbstractCard,我想用它作为列表数据传递给我的
BaseAdapter
。我不想将
列表
传递给
BaseAdapter
,而是传递扩展抽象卡的
列表

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

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

public void setData(List<AbstractCard> abstractCards) {
    this.abstractCards = abstractCards;
}
private List abstractCards=new ArrayList();
公共无效设置数据(列出抽象卡){
this.abstractCards=abstractCards;
}

现在,由于Card扩展了AbstractCard,我认为我可以将
列表传递给setData(),但它显然会给我错误。如何使其成为基于父类的类型?

您不能实例化
列表,因为它是一个接口(请参阅。您必须使用实现
列表的具体类。例如,使用
ArrayList

ArrayList<Card> list = new ArrayList<Card>(); 
ArrayList list=new ArrayList();

您不能实例化
列表,因为它是一个接口(请参阅)。您必须使用实现
列表的具体类。例如,使用
数组列表

ArrayList<Card> list = new ArrayList<Card>(); 
ArrayList list=new ArrayList();

您不能实例化
列表,因为它是一个接口(请参阅)。您必须使用实现
列表的具体类。例如,使用
数组列表

ArrayList<Card> list = new ArrayList<Card>(); 
ArrayList list=new ArrayList();

您不能实例化
列表,因为它是一个接口(请参阅)。您必须使用实现
列表的具体类。例如,使用
数组列表

ArrayList<Card> list = new ArrayList<Card>(); 
ArrayList list=new ArrayList();
您是否尝试过:

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

public void setData(List<? extends AbstractCard> abstractCards) {
    this.abstractCards = abstractCards;
}
private List您是否尝试过:

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

public void setData(List<? extends AbstractCard> abstractCards) {
    this.abstractCards = abstractCards;
}
private List您是否尝试过:

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

public void setData(List<? extends AbstractCard> abstractCards) {
    this.abstractCards = abstractCards;
}
private List您是否尝试过:

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

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

private List您的错误是什么,请发布您的logcat值!!没有logcat值,它无法编译。如果我尝试将列表传递给setData()eclipse说我的参数不适用于该方法。这是因为类型已更改,u正在传递子类而不是父抽象类!!在java中,您可以从父类引用引用子类对象,但相反的不适用于此。您的错误是什么,请发布您的logcat值!!没有logcat值,它不会omfile。如果我尝试将列表传递给setData()eclipse说我的参数不适用于该方法。这是因为类型已更改,u正在传递子类而不是父抽象类!!在java中,您可以从父类引用引用子类对象,但相反的不适用于此。您的错误是什么,请发布您的logcat值!!没有logcat值,它不会omfile。如果我尝试将列表传递给setData()eclipse说我的参数不适用于该方法。这是因为类型已更改,u正在传递子类而不是父抽象类!!在java中,您可以从父类引用引用子类对象,但相反的不适用于此。您的错误是什么,请发布您的logcat值!!没有logcat值,它不会omfile.如果我试图将一个列表传递给setData(),eclipse会说我的参数不适用于该方法。这是因为类型已更改,u传递的是子类而不是父抽象类!!在java中,您可以从父类引用引用子类对象,但反面不适用于此,我认为他正在这样做:-“private List abstractCards=new ArrayList();”这非常适用!!好吧,我认为他正在这样做:-“private List abstractCards=new ArrayList();”这非常适用!!好吧,我认为他正在这样做:-“private List abstractCards=new ArrayList();“这非常适用!!好吧,我想他正在这么做:-“private List abstractCards=new ArrayList();”这非常适用!!