我有
Map<String, Map<String, Time>> map = new HashMap<String, Map<String, Time>>();
Time t = map.get("key1").get("key2");
有没有任何方法可以使用lambda来获取时间t的值,而不需要介于两者之间的NullPointerException。因此,如果key1返回null值,那么t应该为null,代码不应该抛出null指针
使用Java8中引入的getOrDefault
,并将键和Collections.emptyMap()
作为默认值。这是它的样子。
Time t = map.getOrDefault("key1", Collections.emptyMap()).get("key2");
在Java 8 中
Time t = Optional.ofNullable(map.get("key1"))
.map(m -> m.get("key2"))
.orElse(null);