Optional 이란?
Optional<T> 클래스는 Integer나 Double 클래스처럼 'T'타입의 객체를 포장해 주는 래퍼 클래스(Wrapper class)이다.
Optional 인스턴스는 모든 타입의 참조 변수를 저장할 수 있다.
이러한 Optional 객체를 사용하면 예상치 못한 NullPointerException 예외를 제공되는 메소드로 간단히 회피할 수 있다.
즉, 복잡한 조건문 없이도 널(null) 값으로 인해 발생하는 예외를 처리할 수 있게 된다.
Optional 사용 예시
public UserVO login(String id, String password) throws Exception {
Optional<UserVO> findUserOptional = userMapper.findByLoginId(id);
//아이디는 일치한 경우
if(findUserOptional.isPresent()){
UserVO user = findUserOptional.get();
//비밀번호 일치 확인
if(user.getUserPassword().equals(password)){
return user;
}else{
return null;
}
}else{ //아이디 틀린 경우
return null;
}
}
토이 프로젝트에서 사용자 로그인 체크 할때 사용자 정보를 DB에서 가져올때 사용했다.
Optional 객체에 저장된 값이 null이면 java.util.NoSuchElementException: No value present 예외가 발생한다.
이럴 때는 isPresent 메소드를 이용해서 true false 를 체크하는 조건문을 넣어주면 된다.
Optional.get() 메소드를 사용하면 Optional 객체에 저장된 값에 접근할 수 있다.
'JAVA' 카테고리의 다른 글
JSON (0) | 2024.02.20 |
---|---|
자바 TimerTask (0) | 2023.12.21 |
자바 8 인 액션 1일차 (0) | 2021.08.02 |
자바의 정석 7일차 (0) | 2021.08.02 |
자바의 정석 공부 4일차 (0) | 2021.07.14 |