Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/apache-kafka/3.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 声明要生成和使用的接口对象的集合_Java_Collections_Interface - Fatal编程技术网

Java 声明要生成和使用的接口对象的集合

Java 声明要生成和使用的接口对象的集合,java,collections,interface,Java,Collections,Interface,我可以声明一个可以产生和使用的接口对象集合吗 我有一个界面: public interface IData { … } 以及实现它的类 public class WristMonData implements IData{ … } 我想声明一个对象列表,这些对象实现了要传递给方法的接口。我好像拿不出正确的收款申报单 IData works = new WristMonData(); List<IData> doesntWork = new ArrayList&l

我可以声明一个可以产生和使用的接口对象集合吗

我有一个界面:

public interface IData {
    … 
}
以及实现它的类

public class WristMonData implements IData{
    …
}
我想声明一个对象列表,这些对象实现了要传递给方法的接口。我好像拿不出正确的收款申报单

IData works = new WristMonData();
List<IData> doesntWork = new ArrayList<WristMonData>(); //Incompatible types error
IData works=新腕带();
List doesnetwork=new ArrayList()//不兼容类型错误
我的理解是我不应该使用你需要声明的
List

List<IData> itWorks = new ArrayList<IData>(); 
List itWorks=new ArrayList();
然后您可以向列表中添加类型为
WristMonData
的元素

您可以编写:

List<WristMonData> doesWork = new ArrayList<WristMonData>();

简单的解决方案是如此令人满意。非常感谢。您可以将
WristMonData
类型的元素放入列表中,但如果没有显式转换,您将无法将它们取出。这违背了泛型的目的。@davidorenzomarino我必须等待足够的时间才能允许。谢谢。如果我这样做,问题是试图将
WristMonData
对象添加到
List@user432209您不需要尝试将
WristMonData
添加到我要添加的
列表中,也就是(
List@user432209创建列表时,需要执行以下操作
list list=new ArrayList()
。您可以从该列表中添加和获取
WristMonData
对象,而无需强制转换。如果您需要将该列表传递给一个接受任何类型
IData
列表的方法,则该方法的参数必须是
ListCorrection。我仍然有点结巴。您可以为上面的方法添加list.add的语法吗?T汉克斯。
public void method(List<? extends IData> list)
public void method(List<? extends IData> list) {
    helper(list);
}

private <T extends IData> void helper(List<T> list) {
    // You can use list as both a consumer and supplier of Ts here.
}