"ThreadLocal.withInitial"을 우선해서 사용하는게 좋습니다.

 

익명 내부 클래스를 만들어 ThreadLocal 인스턴스를 초기화하는 것의 대안으로, Java 8부터 ThreadLocal.withInitial이라는 것이 소개됐습니다.

이 규칙은 ThreadLocal 익명 내부 클래스가 ThreadLocal.withInitial으로 대체될 수 있을 때 알람을 울립니다.

규칙을 어긴 코드

ThreadLocal<List<String>> myThreadLocal =
  new ThreadLocal<List<String>>() { // 규칙을 어긴 코드
      @Override
      protected List<String> initialValue() {
          return new ArrayList<String>();
      }
  };

규칙을 준수한 해결책

ThreadLocal<List<String>> myThreadLocal = ThreadLocal.withInitial(ArrayList::new);

If you like SONARKUBE, don’t forget to give me a star. :star2:

원문으로 바로가기

Star This Project