// 1. empty 메소드로 빈 값 넣기
Optional<Integer> val1 = Optional.empty();
// 2. of 메소드로 null이 아닌 값을 넣기
Optional<Integer> val2 = Optional.of(getId());
// 3. ofnullable 메소드로 null이 될 수 있는 값을 넣기
Optional<Integer> val3 = Optional.ofNullable(getId());
// 4. isPresent 메소드로 값이 Null인지 검사
if (val3.isPresent()) {
// 5. get 메소드로 값을 가져오기
System.out.println(val3.get());
}
// 6. orElse 메소드로 null인 경우 대체할 값을 설정
int new_val = val1.orElse(4);
// 7. orElseGet 메소드로 null인 경우 대체할 함수 자체를 설정
int new_val = val1.orElse(() -> new Integer(3));