ShimSeongbo / study

0 stars 0 forks source link

[Websquare] Websquare Submission: How to Safely Process Null Params #23

Open ShimSeongbo opened 1 year ago

ShimSeongbo commented 1 year ago

Java에서 Mapget 메소드는 해당 키가 없을 경우 null을 반환합니다. 따라서 (List) param.get("dc_pdReqList");에서 "dc_pdReqList"에 대한 값이 없으면 null을 반환하게 됩니다. 이를 List 타입으로 캐스팅하려고 하면 NullPointerException이 발생할 수 있습니다.

이를 처리하기 위한 몇 가지 방법이 있습니다:

  1. null 체크: 가장 기본적인 방법은 null인지 확인하는 것입니다.

    List<Map> pdReqList = null;
    if (param.get("dc_pdReqList") != null) {
       pdReqList = (List) param.get("dc_pdReqList");
    }
  2. Optional 사용: Java 8 이상에서는 Optional을 사용하여 null을 안전하게 처리할 수 있습니다.

    Optional<List<Map>> optionalPdReqList = Optional.ofNullable((List) param.get("dc_pdReqList"));
  3. Map.getOrDefault 사용: Java 8 이상에서 Map.getOrDefault 메소드를 사용하여 키가 없을 경우의 디폴트 값을 설정할 수 있습니다.

    List<Map> pdReqList = (List) param.getOrDefault("dc_pdReqList", new ArrayList<Map>());
  4. 예외 처리: try-catch 블록을 사용하여 NullPointerException을 잡을 수 있지만, 이는 일반적으로 권장되지 않는 방법입니다. 가능하면 문제의 원인을 미리 제거하는 것이 좋습니다.

여러 방법 중에 하나를 선택하여 적용하면 됩니다.

ShimSeongbo commented 9 months ago

어노테이션 aop활용