[JAVA] Optional

sangwoo·2023년 12월 29일
0

JAVA

목록 보기
1/1

1. Optional

객체를 담을 수 있는 래퍼 클래스이다. 지네릭 클래스로 모든 reference variable 을 담을 수 있다.

장점
결과가 null 인지 매번 if 문으로 체크할 필요 없이 Optional에 정의된 메서드를 통해 간단히 처리 할 수 있다.

2. Optional 객체 생성하기

1) of()

제일 기본적인 생성 방법이다. 하지만 담기는 reference variablenull일 수 도 있다면 해당 메서드는 사용하지 않는다.

String s = "abc";
Optional<String> op1 = Optional.of(s);
Optional<String> op2 = Optional.of("abc");
Optional<String> op3 = Optional.of(new String("str"));

2) ofNullable()

reference variablenull일 수도 있다면 해당 메서드를 사용한다.

Optional<String> ofNullalbeOpt = Optional.ofNullable(null);

3. Optional 초기화 하기

1) null

기본적으로 null로 초기화 할 수 있다. 하지만 권장되는 방법은 아니다.

Optional<String> optVal = null;

2) empty()

empty()를 통해 Optional을 초기화하는 것이 권장하는 방법이다.

Optional optVal = Optional.empty();

4. Optional 값 가져오기

1) get()

Optional<String> opAbc = Optional.of("abc");
String str1 = opAbc.get();
System.out.println("str1 = " + str1);

2) orElse()

가져오는 값이 null일수도 있을 때, 해당 메서드를 사용한다.

Optional str = Optional.of("abc")
String getOrElse = str.orElse(""); // 결과 값: abc

Optional<Object> nullOp = Optional.ofNullable(null);
Object o = nullOp.orElse(1);
System.out.println("o = " + o); // 결과값 : 1

Optional 에 담은 reference variablenull인 경우는 매개변 수에 설정한 값을 반환한다.

3) ofElseGet()

파라미터에 람다식을 넣어 null을 대체 할 수 있다.

Optional nullOp = Optional.ofNullable(null);
Optional orElseGetVar = nullOp.ofElseGet(String:new);

4) ofElseThrow()

Optional에 담긴 값이 null이라면 예외를 지정하여 발생시킬 수 있다.

Optional<Object> orElseThrowVar = Optional.ofNullable(null);
orElseThrowVar.orElseThrow(NullPointerException::new);

5) isPresent()

Optioanl의 값이 null이면 false를 아니면 true를 반환하는 메서드이다.

Optional<Object> nullOpt = Optional.ofNullable(null);
if(nullOpt.isPresent()) {
	System.out.println("null이 아닙니다.");
} else {
	System.out.println("null 입니다.");
}

6) ifPresent()

Opational 값이 있다면 파라미터로 받은 람다식을 실행하고 없다면 실행하지 않는다.

Optional<String> str = Optional.of("str");
str.ifPresent(System.out::println); // 결과 값 : str

0개의 댓글