您可以使用 Optional
的 ofNullable
方法来创建一个可能表示值,也可能不表示值的方法。然后,您可以使用 map
方法,如果该值尚未存在,则该方法将具有 ,将结果映射到新值。Optional
null
Function
null
在这里,我提供一个作为 lambda 表达式,以使用第二个键从第二个键获取值。Function
Map
Optional<String> result = Optional.ofNullable(myMap.get("keyA")).map(m -> m.get("keyB"));
从那里,您可以看到 是否具有 的值,如果是,则使用 获取它。Optional
isPresent()
get()
测试:
public static Optional<String> method(Map<String, Map<String, String>> map,
String key1, String key2)
{
return Optional.ofNullable(map.get(key1)).map(m -> m.get(key2));
}
主叫区号:
Map<String, Map<String, String>> myMap = new HashMap<>();
Map<String, String> inner = new HashMap<>();
inner.put("one", "two");
myMap.put("three", inner);
System.out.println(method(myMap, "three", "one"));
System.out.println(method(myMap, "three", "dne"));
System.out.println(method(myMap, "dne", "dne"));
输出:
Optional[two]
Optional.empty
Optional.empty