我有一个嵌套的地图,像这样:
map.get("employee").get("address").remove("city")
有没有办法使用“employee.address.city”之类的键删除城市条目?所以我正在寻找类似的东西MapUtil.remove(map,"employee.address.city")
Java 8 库Dynamics可以做到这一点,它包装了一个嵌套的映射/集合(以及其他类型)结构,并允许在没有静态类型的情况下进行空安全推理。
Dynamic.from(map).get("employee").get("address").asMap().remove("city");
Run Code Online (Sandbox Code Playgroud)
我们包装地图以获取我们的 Dynamic 实例,#get 现在返回其他 Dynamic 实例,表示该子项或该子项不存在。因此,这是空安全的。
为方便起见,我们还可以使用 #dget 将一个 get 拆分为多个,也许 #maybe 可以处理员工或地址无一例外不存在的情况:
Dynamic.from(map).dget("employee.address")
.maybe().asMap()
.ifPresent(address -> address.remove("city"));
Run Code Online (Sandbox Code Playgroud)
查看更多示例https://github.com/alexheretic/dynamics
| 归档时间: |
|
| 查看次数: |
2401 次 |
| 最近记录: |