001package java8; 002 003import com.sandwich.koan.Koan; 004 005import java.util.Optional; 006 007import static com.sandwich.koan.constant.KoanConstants.__; 008import static com.sandwich.util.Assert.assertEquals; 009 010public class AboutOptional { 011 012 boolean optionalIsPresentField = false; 013 014 @Koan 015 public void isPresent() { 016 boolean optionalIsPresent = false; 017 Optional<String> value = notPresent(); 018 if (value.isPresent()) { 019 optionalIsPresent = true; 020 } 021 assertEquals(optionalIsPresent, __); 022 } 023 024 @Koan 025 public void ifPresentLambda() { 026 Optional<String> value = notPresent(); 027 value.ifPresent(x -> optionalIsPresentField = true); 028 assertEquals(optionalIsPresentField, __); 029 } 030 031 //use optional on api to signal that value is optional 032 public Optional<String> notPresent() { 033 return Optional.empty(); 034 } 035 036 private Optional<String> present() { 037 return Optional.of("is present"); 038 } 039}