본문 바로가기
Java , Spring/Java

[Java] Optional

by 방배킹 2023. 9. 15.

Optional 이란

Java 8 부터 지원하는 NullPointerException을 방지할 수 있도록 도와주는 Wrapper 클래스이다.

 

NullPointerException 이란

값이 없는 null을 가지고 있는 객체 또는 변수를 호출할때 발생하는 예외이다.

// NullPointerException 발생

private Scanner scanner;

public f(){
    int a = scanner.nextInt();
	System.out.println(a);
}
// NullPointerException 해결

private Scanner scanner;

public f(){
	if(scanner == null){
		scanner = new Scanner(System.in)
	}
    int a = scanner.nextInt();
	System.out.println(a);
}

null인지 확인하는 로직을 추가해야한다. (코드의 가독성이 나빠지고 길어진다.)

따라서 객체를 선언할때 초기값을 선언 하는것을 추천한다.

 

Optional<T> 사용하기

//Optional 객체 생성
Optional<SampleObject> sampleObject;
Optional<String> sampleText;

//null값으로 선언하기
Optional<String> optionalEmpty = Optional.empty();

System.out.println(optionalEmpty); // Optional.empty
System.out.println(optionalEmpty.isPresent()); // false
System.out.println(optionalEmpty.isEmpty()()); // true

Optional을 사용하면 null 대신 Optional.empty으로 사용할 수 있다.

 

해당 메소드들 외에도 다양한 메소드들이 존재한다.

댓글