util:list map set

发布时间 2023-06-01 14:18:08作者: zno2

 

package cn.zno.testutil;

import java.util.List;
import java.util.Map;
import java.util.Set;

import org.springframework.stereotype.Component;

public class Foo {

    private List<String> list;
    private Map<String,String> map;
    private Set<String> set;
    public List<String> getList() {
        return list;
    }
    public void setList(List<String> list) {
        this.list = list;
    }
    public Map<String, String> getMap() {
        return map;
    }
    public void setMap(Map<String, String> map) {
        this.map = map;
    }
    public Set<String> getSet() {
        return set;
    }
    public void setSet(Set<String> set) {
        this.set = set;
    }
    
}

 

 

<bean id="foo1" class="cn.zno.testutil.Foo">
        <property name="map">
            <map>
                <entry key="a" value="1"></entry>
                <entry key="b" value="2"></entry>
            </map>
        </property>
        <property name="list">
            <list  >
                <value>c</value>
                <value>d</value>
            </list>
        </property>
        <property name="set">
            <set >
                <value>e</value>
                <value>f</value>
            </set>
        </property>
    </bean>
    
    
    <bean id="foo2" class="cn.zno.testutil.Foo" >
        <property name="map" ref="mmm"></property>
        <property name="list" ref="lll"></property>
        <property name="set" ref="sss"></property>
    </bean>
    
    <util:map id="mmm">
        <entry key="A" value="1"></entry>
        <entry key="B" value="2"></entry>
    </util:map>
    
    <util:list id="lll">
        <value>C</value>
        <value>D</value>
    </util:list>
    
    <util:set id="sss">
        <value>E</value>
        <value>F</value>
    </util:set>

 

@Autowired
    @Qualifier("foo1")
    private Foo foo1;
    
    @Autowired
    @Qualifier("foo2")
    private Foo foo2;
    

    @Test
    public void ff() {
        System.out.println(foo1.getList());
        System.out.println(foo1.getMap());
        System.out.println(foo1.getSet());
        
        System.out.println(foo2.getList());
        System.out.println(foo2.getMap());
        System.out.println(foo2.getSet());
    }

 

{a=1, b=2}
[c, d]
[e, f]
{A=1, B=2}
[C, D]
[E, F]

 

util: 的优势

1. 非 util 的方式指定的list 是 java.util.List ,map 是 java.util.Map ,set 是 java.util.Set

2. util 的方式可以指定其具体的实现类,比如 java.util.LinkedList

3. util 的方式可以复用

 

共同点:

1. key 和 value 都可以指定具体类型(全限定名)