null처리를 하다보면 코드가 지저분해지고, 실수하기가 쉬우며, 실수했을때는 NullPointException이 발생하게 된다. 

java8부터는 이것을 개선하기위해 null이 될 수 있는 객체를 Optional에 넣어서 명시적으로 메소드를 통해 다룰수 있도록 만들었다. 이를 통해 체이닝이 가능해지며 코딩오류 가능성이 줄게 되었다.

(단 람다함수 및 method reference등으로 인해 다소 이해하기 복잡해보일 순 있다)

 

코드예시는 여기 참조

내가 만든 코드 예시는 아래 참조

https://github.com/sevity/problem_solving/blob/main/java/OptionalExample.java

반응형

'Programming > JAVA' 카테고리의 다른 글

reactor #1  (1) 2024.01.01
BiFunction, Function을 사용한 함수형 프로그래밍  (0) 2024.01.01
java enum  (0) 2023.11.03
IntelliJ 팁  (0) 2023.11.03
java공부  (0) 2023.08.12

c++ enum과 다르게 java의 enum은 좀 더 발전된 형태로 상수의 집합이 아닌 타입 자체가 객체이다.

따라서 enum type 마다 속성과 메서드를 가질 수 있으며 생성자로 초기화 한다.

public enum CoffeeSize {
    SMALL(200, 3000),
    MEDIUM(400, 5000),
    LARGE(600, 7000),
    XLARGE(1000, 9000);

    private final int volumeInMl;
    private final long priceInWon;

    CoffeeSize(int volumeInMl, long priceInWon) {
        this.volumeInMl = volumeInMl;
        this.priceInWon = priceInWon;
    }
}

위 예시를 보면 커피 사이즈를 enum으로 SMAL, MEDIUM, LARGE, XLARGE로 나누는데, 각각 볼륨과 가격의 속성을 추가로 가진다.

반응형

'Programming > JAVA' 카테고리의 다른 글

BiFunction, Function을 사용한 함수형 프로그래밍  (0) 2024.01.01
java Optional  (1) 2023.11.04
IntelliJ 팁  (0) 2023.11.03
java공부  (0) 2023.08.12
react/next.js로 만드는 online-judge 사이트 #4 문제관리 프론트엔드  (0) 2023.08.05

 

 

Call Hierachy

Source Insight 처럼 런타임이 아닌데도 콜스택 그래프를 볼 수 있도록 해준다.

오픈소스 분석시 매우 유용하다.

우측 callers of countByProblemId 주목

접근: 메뉴 > 탐색 > 호출계층구조 (Ctrl+Alt+H)

런타임이 아니기 때문에 디버깅시 나오는 콜스택이 외길인데 반해서 콜러가 여러군데로 나오는점이 있으니 분석시 유의.

반응형

+ Recent posts