本文共 2161 字,大约阅读时间需要 7 分钟。
Java 8???Optional???????????null???????Optional?????????????????????????null????NullPointerException????????Optional??????????
Optional?????of()?ofNullable()???????of()?????????null???ofNullable()???????null?????????????
Optional.of("?null?");Optional.ofNullable(null); Optional?????????Present?????Absent????????isPresent()??????true??????false?????????empty()???????????Optional???
Optionaloptional = Optional.ofNullable(null);if (optional.isPresent()) { System.out.println("???");} else { System.out.println("???");}
????????Optional???????????????orElse()????????????
String defaultValue = "???";String result = optional.orElse(defaultValue);
???????????????orElseThrow()????????Supplier???????????
try { String value = optional.orElseThrow(() -> new IllegalArgumentException("???")); System.out.println(value);} catch (IllegalArgumentException e) { System.out.println(e.getMessage());} ifPresent()????????????????Consumer?
optional.ifPresent(System.out::println);
???????????Consumer???????????
???????Optional????map()?flatMap()???????????Optional?????????????
optional.map(String::toUpperCase);optional.flatMap(String::isEmpty);
?????????????
public class OptionalExample { public static void main(String[] args) { Optional optional = Optional.ofNullable(null); // ??????? if (optional.isPresent()) { System.out.println("???"); } else { System.out.println("???"); } // ????? String value = optional.orElse("???"); System.out.println(value); // ???? try { String valueOrThrow = optional.orElseThrow(() -> new IllegalArgumentException("???")); System.out.println(valueOrThrow); } catch (IllegalArgumentException e) { System.out.println(e.getMessage()); } // ??????? optional.ifPresent(System.out::println); }} Optional?????????????null???????????????orElse?orElseThrow?ifPresent??????????????????????Optional??????????????????
转载地址:http://tipfk.baihongyu.com/