MapWrapper 学习

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

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

MetaObject 有一个 setValue方法 这个方法可以对原来的对象赋值,
首先看一看[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]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值