Java Optional

Kim Dong Kyun·2022년 11월 25일
0

Today I learned

목록 보기
10/43

우리 조는 미니프로젝트를 하루동안 진행하면서 예외값에 대한 처리를 아래와 비슷하게 해왔다.

        int memoNum = scanAndGetNum();
        while (memoDB.getMemoNum(memoNum) == null) {
            System.out.print(BLANK + RETYPE_NOMEMO_MODIFY);
            memoNum = scanAndGetNum();
        }

MemoDB에서 Memo의 넘버(고유번호)를 가져오는데 그 값이 null 이라면...

그리고 이와 같은 행태에 달린 피드백...

"반환값이 null로 되어 있는데, 이게 정말 좋은 생각일지 한번 고민 해 봅시다. 고민하신 후에는 Optional 에 관한 내용도 살펴보세요~"

Optional은 null이라는 반환값을 리턴할 때 오류가 날 확률이 높은 친구들을 위해 사용한다.

그리고 나서 바뀐 우리의 코드...(는 아니고 혜민님의 코드)

     public Optional<User> confirmId(String id) {
        Optional<User> opUser = userDB.getUserByUserId(id);
        if (opUser.isEmpty()) {
            throw new IllegalArgumentException("아이디 없음");
        }
        return opUser;
    }
 

opUser가 null값이 아닌 그냥 비어있는 상태! 로 만들고, isEmpty() 사용해서 익셉션을 던져준다. 근데 내가 보기엔...완벽한 사용은 아닌듯. 다시 정리할 필요가 있다.

https://homoefficio.github.io/2019/10/03/Java-Optional-%EB%B0%94%EB%A5%B4%EA%B2%8C-%EC%93%B0%EA%B8%B0/

위 내용에서 확인하자. 오늘 해야 할 작업만 마치고...오늘안에 마칠 수 있다면...제발...

0개의 댓글