Jav*_*der 4 java lambda java-8
我有
Map<String, Map<String, Time>> map = new HashMap<String, Map<String, Time>>();
Time t = map.get("key1").get("key2");
Run Code Online (Sandbox Code Playgroud)
有什么方法可以使用 lambda 来获取 Time t 的值,而没有 NullPointerException 介于两者之间。因此,如果 key1 返回空值,那么 t 应该为空并且代码不应抛出空指针
使用getOrDefault在 Java8 中引入的键和Collections.emptyMap()作为默认值。这是它的外观。
Time t = map.getOrDefault("key1", Collections.emptyMap()).get("key2");
Run Code Online (Sandbox Code Playgroud)