ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Optional
    공부/기본 2023. 11. 21. 10:18

    - java 8 부터 도입된 클래스

    - null을 직접 다루는 것보다 안전하게 객체의 존재 또는 부재를 표현할 수 있게 해줌

    - optional 객체는 특정 타입의 객체를 포장하여 해당 객체가 null일 수도 있음을 명시적으로 나타낸다

     

    ex)

    Optional<User> user = getUserById(id);
    if (user.isPresent()) {
        System.out.println(user.get().getName());
    } else {
        System.out.println("User not found");
    }
    
    // or 
    
    if (!user.isPresent()) {
        throw new EntityNotFoundException("userId에 해당하는 유저가 없습니다.");
    } 
    // 이후 로직 
    
    
    
    
    // 또는
    String name = getUserById(id).orElse(new User("default")).getName();

     

    - user 타입의 객체를 반환하는 메소드가 있을 때 해당 객체가 null일 가능성이 있다면 Optional<User>를 반환 타입으로 지정할 수 있다

    - 메소드를 호출하는 측에서는 반환된 Optional객제가 null인지 아닌지 isPresent() 메소드를 통해 안전하게 확인할 수 있습니다

    - getUserById(id) 메소드는 Optionl<User>를 반환

    - user.isPresent()는 Optional객체가 null이 아닌지를 확인

    - 이렇게하면 NullPointerException을 피할수있다

     

    사용이유

    - null값이 들어왔을때 nullpointerexception을 발생하지 않고 User not found 를 출력해준다

    '공부 > 기본' 카테고리의 다른 글

    jwt 최종 정리  (0) 2023.11.24
    회원가입 SHA-256  (2) 2023.11.20
    예외 클래스의 계층구조  (1) 2023.11.20
    Spring MVC 아키텍처  (0) 2023.11.20
    @ExecptionHandler 코드 조금 더 보고 공부하기  (0) 2023.11.20
Designed by Tistory.