optional 2

Optional이란??

Optional이란?? Spring Data JPA를 이용해서 개발을 할 때에, find메서드를 사용하면 Optional이 기본적으로 나올 것이다. Optional이 일단 무엇일까?? T타입의 객체를 감싸는 generic 형태의 Wrapper클래스 Optional은 모든 타입의 참조 변수를 담을 수 있다. public final class Optional { private final T value; // T타입의 참조변수 }이런 식으로, 참조 변수들을 그냥 반환하는 것이 아니라, Optional로 한번 감싸서 보내주는 것이다. 이걸 왜 해줄까?? 만약 바로 객체를 보내준다 가정하면 없는 객체를 가져와서 확인하려 하면? 객체 가져옴 객체가 없음 사용하려 한다 에러!! 이렇게 된다. 따라서 보통 객체를 바로..

이론 정리/java 2023.01.19

Java의 Optional 클래스

자바 사용중 가장 많이 만나는 에러 중 하나가 바로 널 에러이다.(NPE - Null Pointer Exception) 개인적으로 Springboot의 JPA를 사용해서 값을 가져올 때에 이 null처리에 많은 신경을 써야 한다고 생각한다. Java8 이전까지 NPE를 해결하기 위해서는 두 가지들 중 하나를 택해야 했다. 예외 출력 예외를 던지는 것인데, 이것은 정말 예외가 발생하는 상황에 사용하도록 한다. null 반환 null을 실제로 받아오는 것으로, 클라이언트에서 별도로 처리해야 한다. 이런 식으로 처리하였는데, 이 로직을 수행하는 데에 코드가 복잡해 질 수도 있기 때문에 초기값을 사용하는 경우도 있었다. Java8 버전부터 Optional클래스를 사용하여 이 NPE를 해결할 수 있도록 도와준다...

이론 정리/java 2022.04.03