我从参数中收到一个以点表示的字符串,例如“attr1.attr2.attr3”。我有一个数据类型为linkedhashmap<string,object>mapobject的对象。它有一个可以通过以下方式访问的值: mapObject.attr1.attr2.attr3
. 当我尝试以这种方式访问字段时: mapObject."${attr1.attr2.attr3}
,我收到一个missingpropertyexception,groovy将其转换为字符串: mapObject."attr1.attr2.attr3"
很明显,这个属性并不存在。我用eval.java类eval.x()方法解决了这个问题: Eval.x(mapObject,"x.${attr1.attr2.attr3}")
但这对蜗牛来说也太慢了。有没有一种方法,我可以得到一个嵌套属性的值的Map只知道点符号的路径?
这是我的密码 def superCoolMethod(String dotNotatedPath, LinkedHashMap<String, Object> MapObject){ def valueINeedToGetFromTheMapObject = MapObject."${dotNotatedPath}" // Other stuff unimportant for this question.
`
1条答案
按热度按时间pkmbmrz71#
你可以在上面分开这条路
.
(在regexp中引用它),然后使用数据在路径上进行缩减。例如