본문 바로가기

JAVA

Optional이란?

 

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