Java 9에서는 팩토리 메소드 컬렉션 에 추가되었습니다. API . 수정할 수 없는 목록, 설정 및 지도 컬렉션 개체를 사용하여 코드 줄 수를 줄이기 위해. List.of(), Set.of(), Map.of() 및 Map.ofEntries() 정적 팩토리 메소드 불변 을 생성하는 편리한 방법 제공 컬렉션 .
아래는 조건 입니다. 컬렉션 팩토리 메소드의 경우:
- 구조적으로 변경할 수 없습니다.
- null 요소 또는 null 키를 허용하지 않습니다.
- 모든 요소가 직렬화 가능한 경우 직렬화 가능합니다.
- 생성 시 중복 요소/키를 거부합니다.
- 집합 요소의 반복 순서는 지정되지 않았으며 변경될 수 있습니다.
- 가치 기반입니다. 팩토리는 새로운 인스턴스를 생성하거나 기존 인스턴스를 재사용할 수 있습니다. 따라서 이러한 인스턴스에 대한 ID 관련 작업, ID 해시 코드 및 동기화는 신뢰할 수 없으며 피할 수 있습니다.
구문
List.of(elements...) Set.of(elements...) Map.of(k1, v1, k2, v2)
예
import java.util.Set; public class CollectionsTest { public static void main(String args[]) { System.out.println("Java 9 Introduced a static factory method: of()"); Set<String> immutableCountrySet = Set.of("India", "England", "South Africa", "Australia"); System.out.println(immutableCountrySet); try { immutableCountrySet.add("Newzealand"); } catch(Exception e) { System.out.println("Caught Exception, Adding Entry to Immutable Collection!"); } } }
출력
Java 9 Introduced a static factory method: of() [South Africa, India, Australia, England] Caught Exception, Adding Entry to Immutable Collection!