Optionals不是函數式接口,而是用於防止 NullPointerException 的漂亮工具。
Optional 是一個簡單的容器,其值可能是null或者不是null。在Java 8之前一般某個函數應該返回非空對象但是有時卻什麼也沒有返回,而在Java 8中,你應該返回 Optional 而不是 null。
//of():爲非null的值創建一個Optional
Optional<String> optional = Optional.of("bam");
// isPresent(): 如果值存在返回true,否則返回false
optional.isPresent(); // true
//get():如果Optional有值則將其返回,否則拋出NoSuchElementException
optional.get(); // "bam"
//orElse():如果有值則將其返回,否則返回指定的其它值
optional.orElse("fallback"); // "bam"
//ifPresent():如果Optional實例有值則爲其調用consumer,否則不做處理
optional.ifPresent((s) -> System.out.println(s.charAt(0))); // "b"