반응형
Optional 클래스란
✔️ Java에서 Optional 클래스는 값이 있을 수도 있고 없을 수도 있는 상황을 다루기 위해 사용하는 컨테이너 클래스입니다. 이를 통해 값이 없음을 명시적으로 나타낼 수 있습니다.
Optional을 사용하는 가장 큰 이유는 NullPoitnerException을 방지할 수 있습니다.
Optional.ofNullable 메서드란
✔️ ofNullable 메서드는 주어진 값이 null 인지 아닌지를 확인합니다.
값이 null이 아니면 해당 값을 가지는 Optional 객체를 반환하며, 갑이 null이면 빈 Optional 객체를 반환합니다.
public class NullableExample {
public static void main(String[] args) {
String nullableValue = "Hello, World!";
// 일반적인 null 체크
if (nullableValue != null) {
System.out.println(nullableValue.toLowerCase());
} else {
System.out.println("Value is null");
}
// Optional.ofNullable 사용
Optional<String> optionalValue = Optional.ofNullable(nullableValue);
optionalValue.ifPresentOrElse(
value -> System.out.println(value.toLowerCase()),
() -> System.out.println("Value is null")
);
}
}
응용하기
List<User> userList = List.of(
new User("Alice", true),
new User("Bob", false),
new User("Charlie", true),
new User("David", true)
);
List<String> activeUserNames = Optional.ofNullable(userList)
.orElse(List.of()) // 리스트가 null인 경우 빈 리스트로 대체
.stream()
.filter(User::isActive) // 활성 사용자만 필터링
.map(User::getName) // 사용자 이름만 추출
.toList();
- Optional.ofNullable()을 통해 사용자 리스트를 Optional로 감쌉니다.
- 주로 null일 수도 있을 경우에 사용합니다.
- orElse()을 통해 리스트가 null인 경우 빈 리스트로 대체합니다.
- stream()을 통해 리스트를 스트림으로 변환합니다.
- filter()을 통해 User::isActive 즉 active 값이 true인 값만 필터링합니다.
- map()을 통해 User::getName 사용자 객체에서 이름을 추출합니다.
Optional을 통해 null 체크를 간소화하고 스트림을 통해 데이터를 편리하게 처리할 수 있습니다.
2024.01.24 - [Spring Framework/JAVA] - [JAVA] Java Stream 활용법: Filter, Map, FlatMap 예제와 함께
반응형
'JAVA' 카테고리의 다른 글
[JAVA] Java Stream groupingBy 통해 그룹핑하기 (0) | 2024.08.17 |
---|---|
[JAVA] JDK, JRE, JVM 차이 및 개념 이해하기 (0) | 2024.08.10 |
[JAVA] Java Stream 활용법: Filter, Map, FlatMap 예제와 함께 (0) | 2024.01.24 |
[JAVA] 자바 JUnit5 & AssertJ 테스트 코드 사용법 (0) | 2023.11.01 |
[JAVA] 자바 enum 클래스 - 열거형, 특정값 매핑 이해하기 (0) | 2023.11.01 |