불변의 정적 팩토리 메소드 Set.of() 수정 불가 를 생성하는 편리한 방법을 제공할 수 있습니다. 세트 자바 9에서.
Set.of()를 사용하여 생성된 집합의 인스턴스 메소드는 다음과 같은 특징이 있습니다.
- 팩토리 메서드에서 반환된 집합은 일반적으로 불변합니다. . 요소를 추가할 수 없음을 의미합니다. , 제거됨 , 또는 대체 세트에서. 모든 mutator 호출 Set의 메소드가 UnsupportedOperationException을 발생시킵니다. .
- Set의 포함된 요소가 변경 가능인 경우 , 세트의 내용이 변경된 것처럼 보일 수 있습니다.
- 불변 설정 null을 허용하지 않는 정적 팩토리 메서드를 사용하여 생성할 수 있습니다. 집단. null 요소로 만들려고 하면 NullPointerException이 발생합니다. .
- 중복을 거부합니다. 요소 불변 집합 생성 시. 정적 팩토리 메소드에 전달된 중복 요소는 IllegalArgumentException을 발생시킵니다. .
- 세트 요소의 반복 순서가 지정되지 않음 변경될 수 있습니다.
구문
Set.of(E... elements)
예
import java.util.Set; public class SetOfMethodTest { public static void main(String args[]) { Set<String> names = Set.of("Adithya", "Bhavish", "Chaitanya", "Jai"); System.out.println("Names - " + names); names.add("Raja"); // throws UnsupportedOperationException } }
출력
Names - [Bhavish, Adithya, Jai, Chaitanya] Exception in thread "main" java.lang.UnsupportedOperationException at java.base/java.util.ImmutableCollections.uoe(Unknown Source) at java.base/java.util.ImmutableCollections$AbstractImmutableSet.add(Unknown Source) at SetOfMethodTest.main(SetOfMethodTest.java:8)