MapWrapper 学习

MetaObject 有一个 setValue方法   这个方法可以对原来的对象赋值,
首先看一看 MapWrapper 是怎么处理的。
public void set(PropertyTokenizer prop, Object value) {
    if (prop.getIndex() != null) { //有子属性  需要赋值
      Object collection = resolveCollection(prop, map);
      setCollectionValue(prop, collection, value);
    } else {
      map.put(prop.getName(), value); //这里直接就加上key值 
    }
    updateKeyArray();
  }


第一次看到这样的代码 我也是手足无措 ,不知道如何解决。
因为我们为一个对象赋值的时候如下:
Map m = new HashMap<String, Object>();
        MetaObject metaDataSource = MetaObject.forObject(m);  
        metaDataSource.setValue("a.username","111111");  
     System.out.println(m);


这里的输出结果是:
{a={username=111111}}

所以可以看到它可以对子节点赋值 。




你可能感兴趣的:(java,setvalue,mapwrapper)