Java 옵셔널 정리
옵셔널
자바 옵셔널은 Java 8 버전부터 도입된 기능으로 옵셔널을 사용하여 NPE(NullPointerException)을 방지할 수 있다.
옵셔널 사용이전 코드
public class Person {
private String name;
public Person(String name) {
this.name = name;
}
public String getName() {
return name;
}
}
// 메인 코드
Person person = // ...
if (person != null) {
String name = person.getName();
if (name != null) {
System.out.println("Person's name: " + name);
} else {
System.out.println("Person's name is null.");
}
} else {
System.out.println("Person is null.");
}
옵셔널을 사용하기 이전에는 null
인지 수동으로 확인하는 코드를 작성하여 NPE이 발생하지 않도록 노력하였다.
옵셔널 사용후 코드
public class Person {
private String name;
public Person(String name) {
this.name = name;
}
public Optional<String> getName() {
return Optional.ofNullable(name);
}
}
// 메인 코드
Person person = // ...
Optional<String> optionalName = person.getName();
if (optionalName.isPresent()) {
String name = optionalName.get();
System.out.println("Person's name: " + name);
} else {
System.out.println("Person is null or has no name.");
}
- Optional.of
- value가 null일 경우 NPE 예외 발생 반드시 값이 있어야 한다.
- Optional.ofNullable
- value가 null일 경우 비어있는 Optional을 반환한다. value 에 Null값이 들어갈 수 있을 경우 사용
- Optional.empty
- 비어있는 옵셔널 객체 생성
댓글남기기