MetaObject 有一个 setValue方法 这个方法可以对原来的对象赋值,
首先看一看[color=red]MapWrapper [/color]是怎么处理的。
第一次看到这样的代码 我也是手足无措 ,不知道如何解决。
因为我们为一个对象赋值的时候如下:
这里的输出结果是:
[color=red]所以可以看到它可以对子节点赋值 。[/color]
首先看一看[color=red]MapWrapper [/color]是怎么处理的。
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}}
[color=red]所以可以看到它可以对子节点赋值 。[/color]