java.util.Collections 컬렉션 호출을 보고합니다.
이는 Java 9에 도입된 List.of()나 Set.of() 또는 Java 10에 도입된 List.copyOf()로 대체할 수 있습니다.
java.util.Collections 메서드와 Java 9 컬렉션 factory 메서드의 차이는 다음과 같습니다.
null 값이 허용되지 않습니다.
List.contains() 또는 Map.get() 등 쿼리 메서드에 null 인수가 허용되지 않습니다.
이 경우에 위반이 발생하면 예외가 던져집니다. 이로써 마이그레이션 후 코드 의미가 변경될 수 있습니다.
예:
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의 새로운 기능