Computer >> 컴퓨터 >  >> 프로그램 작성 >> Java

Java 9에서 Collection 팩토리 메소드의 조건은 무엇입니까?


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!