문제

  • 기존에 runtime 시 NPE(NullPointerException) 발생할 때,
    NPE 방어하기 위해 추가한 null check => 가독성이 떨어진다 !!!!

 

해결

  • java 8에 java.util.Optional<T>라는 새로운 클래스가 추가 되었다.

Optional이란?

  • 존재할 수도 있지만, 안할 수도 있는 객체, null이 될 수도 있는 객체를 감싸고 있는 일종의 Wrapper 클래스
  • 기존엔 객체를 직접 null인지 체크했지만, optional에 담아서 쓰면 null을 다루기 좋아짐.

Optional 효과

  • 명시적으로 해당 변수가 null일 수도 있다는 가능성을 표현할 수 있음.
  • NPE를 유발할 수 있는 null을 직접 다루지 않아도 됨
  • null 체크를 직접하지 않아도 됨.

'Java' 카테고리의 다른 글

Priority Queue 매개변수에 람다식 쓰기  (1) 2024.01.24

Priority Queue

  • 힙 구조를 이용해서 만드는데 큰 값이 맨 앞으로 가는 최대 힙, 최소 힙이 있다. 
PriorityQueue<Integer> minHeap = new PriorityQueue<>();


PriorityQueue<Integer> maxHeap = new PriorityQueue<>(Collections.reverseOrder());

//이중 배열에서 0번째 낮은 숫자가 우선순위가 높은 방식 _ 오름차순 (람다식)
PriorityQueue<int[]> pq = new PriorityQueue<>((o1, o2) -> o1[0] - o2[0]);
 
//이중 배열에서 0번째 낮은 숫자가 우선순위가 높은 방식 _ 오름차순 (Comparator)
PriorityQueue<int[]> pq = new PriorityQueue<>(new Comparator<int[]>() {
    @Override
    public int compare(int[] o1, int[] o2) {
        return o1[0] - o2[0];
    };
});

 

'Java' 카테고리의 다른 글

Null을 처리하기 위한 JAVA8의 Optional  (3) 2024.03.18

+ Recent posts