【发布时间】:2021-03-19 23:26:33
【问题描述】:
我从参数中收到一个点表示的字符串,例如"attr1.attr2.attr3"。
我有一个数据类型为LinkedHashMap<String, Object> mapObject 的对象。
它有一个可以通过这种方式访问的值:mapObject.attr1.attr2.attr3。
当我尝试以这种方式访问该字段时:mapObject."${attr1.attr2.attr3},我收到了一个MissingPropertyException,因为 groovy 将它翻译为一个字符串:mapObject."attr1.attr2.attr3",而该属性显然不存在。
我已经设法使用Eval.java class Eval.x() 方法解决了这个问题: Eval.x(mapObject,"x.${attr1.attr2.attr3}"),但这对于蜗牛来说也太慢了。
有没有一种方法可以让我只知道点表示的路径来获取地图的嵌套属性的值?
这是我的代码:
def superCoolMethod(String dotNotatedPath, LinkedHashMap<String, Object> MapObject){
def valueINeedToGetFromTheMapObject = MapObject."${dotNotatedPath}"
// Other stuff unimportant for this question.
【问题讨论】:
标签: java string groovy hashmap string-interpolation