Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/362.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_Xml_Spring_Collections_Dependency Injection - Fatal编程技术网

Java <;列表>;春天的工作

Java <;列表>;春天的工作,java,xml,spring,collections,dependency-injection,Java,Xml,Spring,Collections,Dependency Injection,我有一个收集乐器的地方;在SomeClass.java中,我在temp.xml文件中声明了SomeClass.java类的bean。在xml中,我向集合添加了两个字符串对象 我的问题是集合是一个接口,所以我不能实例化它,列表也是一个接口,所以我认为我们不能这样做 Collection<String> someCollection = new List<String>(); Collection someCollection=newlist(); 我想知道当我们在xm

我有一个收集乐器的地方;在SomeClass.java中,我在temp.xml文件中声明了SomeClass.java类的bean。在xml中,我向集合添加了两个字符串对象

我的问题是集合是一个接口,所以我不能实例化它,列表也是一个接口,所以我认为我们不能这样做

 Collection<String> someCollection = new List<String>();
Collection someCollection=newlist();

我想知道当我们在xml文件中使用list标记时java代码是如何工作的。这意味着对象是否存储在链表、数组列表或某种类型的列表中?

这取决于
ApplicationContext
。每个实现可能不同,但您可以确定结果是一个
列表
。根据:

另一个自定义名称空间实用程序用于创建列表。第一粒豆子 定义与ListFactoryBean示例相同,只是它是一个 短一点,更容易阅读。第二个bean定义是 相同,只是它使用list class属性指定列表的内容 要使用的实现。如果未使用list类属性,则 ApplicationContext将选择实现类


对于,SpringIoC容器使用ArrayList类生成对象。类似地,它使用LinkedHashSet,它使用LinkedHashMap。

对,我理解它是一种列表类型,但在第一种情况下,我们不指定列表为任何特定类型,它将是哪种类型的列表?列表标记的默认行为是什么?@user1009091:对执行实例化的代码段进行了注释;)
<util:list id="messageUtilList">
    <ref bean="stringMessage01"/>
    <ref bean="stringMessage02"/>
    <value>Spring is fun to learn.</value>
</util:list>

<util:list id="messageUtilLinkedList" 
           list-class="java.util.LinkedList">
    <ref bean="stringMessage01"/>
    <ref bean="stringMessage02"/>
    <value>Spring is fun to learn.</value>
</util:list>
if (this.targetListClass != null) {
    result = (List) BeanUtils.instantiateClass(this.targetListClass);
}
else {
    result = new ArrayList(this.sourceList.size());
}