gpt4 book ai didi

java - 使用动态键获取 LinkedHashMapValue

转载 作者:行者123 更新时间:2023-11-29 08:27:38 25 4
gpt4 key购买 nike

我想使用动态键从 LinkedHashmap 获取值,如下所示。

def map = [Employee1: [Status: 'Working', Id: 1], Employee2:  [Status: 'Resigned', Id: 2]]

def keys = "Employee1.Status"
def keyPath = "";
def keyList = keys.tokenize(".");


keyList.eachWithIndex() { key, i ->

keyPath += "$key"

if(i != keyList.size() - 1){ keyPath += "." }
}

println keyPath //Employee1.Status
println map.keyPath //Always null
println map.'Employee1'.'Status' //Working
println map.Employee1.Status //Working

这里 map.keyPath 总是返回 null。如何使用动态键获取值?

最佳答案

我想你可以简单地这样做:

def tmpMap = map;
keyList.subList(0, keyList.size - 1).each {key ->
tmpMap = map[key]
}
println tmpMap[keyList[keyList.size - 1]]

这将提取子映射,直到达到实际值键。为了使其更稳定,您应该添加一些逻辑来检查与当前键关联的值是否实际上是一个映射。

关于java - 使用动态键获取 LinkedHashMapValue,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51262693/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com