【发布时间】:2017-11-04 07:50:12
【问题描述】:
我需要从映射中获取 userId 值,该值可以出现在映射中的 user1 键或 user2 键或 user3 键或 user4 键中。地图中一次只会出现一个键,不会出现多个键。
所以我从下面的代码开始,它检查user1 是否存在,如果存在提取user1 键值,否则提取user2 键值。那么我应该继续添加user3 和user4 检查吗?如果是的话,它会变得很长..
Map<String, String> holder = Utils.parseStringToMap(payload);
String userId = holder.containsKey("user1") ? holder.get("user1") : holder.get("user2");
是否有更好的方法可以根据存在的键提取userId 值?我正在使用 Java 7。
注意:此处地图中该字段的键名可以是任何名称。它不会是 userx 其中 x 是一个数字,所以我不能在这里使用 for 循环逻辑。
【问题讨论】:
-
如果键可以是 any 名称,也许你会从地图中获取第一个值? ;)
-
除了我要找的那把钥匙之外,这张地图还有很多其他的东西。
-
这意味着你知道你在寻找什么,并且 key 属于一组可能的值