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]

本文详细解读了MapWrapper类的set方法,重点阐述了如何通过该方法实现对Map对象及其子节点的赋值操作,并通过实例展示了Map对象内部结构的变化过程。
2443

被折叠的 条评论
为什么被折叠?



