Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/309.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_Map_Javabeans_Apache Commons Beanutils - Fatal编程技术网

Java 带地图的小动物

Java 带地图的小动物,java,map,javabeans,apache-commons-beanutils,Java,Map,Javabeans,Apache Commons Beanutils,如何将BeanUtils setProperty方法用于映射 例如,此方法: 公共无效设置地址(字符串类型、地址); 可以使用以下方法设置: setProperty(beanObject,“address(home)”,addressObject) 但是如果我要设置的对象是地图,是否可能?如何使用?使用映射语法foo(bar)(bar是映射的键foo): 公共静态类Bean{ 私有映射数据=新HashMap(); 公共地图getData(){ 返回数据; } 公共无效设置数据(最终地图数据){

如何将BeanUtils setProperty方法用于映射

例如,此方法: 公共无效设置地址(字符串类型、地址); 可以使用以下方法设置: setProperty(beanObject,“address(home)”,addressObject)


但是如果我要设置的对象是地图,是否可能?如何使用?

使用映射语法
foo(bar)
bar
是映射的键
foo
):

公共静态类Bean{
私有映射数据=新HashMap();
公共地图getData(){
返回数据;
}
公共无效设置数据(最终地图数据){
这个数据=数据;
}
}
公共静态void main(最终字符串[]args)引发异常{
final Bean=newbean();
//将数据属性的foo键指定给值“bar”
setProperty(bean,“数据(foo)”,“bar”);
System.out.println(bean.data);
}
输出:

{foo=bar}


这就是BeanUtils用户指南所说的:“作为标准JavaBeans API的扩展,BeanUtils包将底层值为java.util.Map的任何属性视为“映射”。您可以通过字符串值键设置和检索单个值。”但我不知道如何使其与带有set(k,v)方法的HashMap一起工作
public static class Bean{
    private Map<String, String> data = new HashMap<String, String>();
    public Map<String, String> getData(){
        return data;
    }
    public void setData(final Map<String, String> data){
        this.data = data;
    }
}

public static void main(final String[] args) throws Exception{
    final Bean bean = new Bean();
    // assign the foo key of the data property to the value 'bar'
    BeanUtils.setProperty(bean, "data(foo)", "bar");
    System.out.println(bean.data);
}