수정 불가하지만 최신 컬렉션 factory 메서드로 변환 가능한 java.util.Collections 컬렉션 호출을 보고합니다. 이는 Java 9에 도입된 List.of()Set.of() 또는 Java 10에 도입된 List.copyOf()로 대체할 수 있습니다.

java.util.Collections 메서드와 Java 9 컬렉션 factory 메서드의 차이는 다음과 같습니다.

이 경우에 위반이 발생하면 예외가 던져집니다. 이로써 마이그레이션 후 코드 의미가 변경될 수 있습니다.

예:


  List<Integer> even = Collections.unmodifiableList(
    Arrays.asList(2, 4, 6, 8, 10, 2));
  List<Integer> evenCopy = Collections.unmodifiableList(
    new ArrayList<>(list1));

빠른 수정을 적용한 후:


  List<Integer> even = List.of(2, 4, 6, 8, 10, 2);
  List<Integer> evenCopy = List.copyOf(list);

제공된 인수가 컴파일 타임 상수인 경우에만 보고하려면 비상수 콘텐츠를 경고하지 않음 옵션을 사용합니다. 해당 옵션을 사용하면 기존 요소의 고유성과 null 가능성을 정적으로 확인할 수 없을 때도 있으므로 동작 변경 가능성이 감소합니다.

'Map.ofEntries' 제안 옵션을 사용하면 11개 이상의 항목을 가진 수정 불가능한 맵을 Map.ofEntries()로 대체하도록 제안 받습니다.

2017.2의 새로운 기능