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

Java 9에서 수정할 수 없는 목록을 어떻게 만들 수 있습니까?


수정할 수 없는 것으로 간주되는 목록 요소를 추가할 수 없는 경우 , 제거됨 , 또는 대체 목록의 수정 불가능한 인스턴스가 생성되면 목록에서. 정적 팩토리 메소드:List.of() Java 9에서 수정할 수 없는 목록을 만드는 편리한 방법을 제공합니다. .

List.of()를 사용하여 생성된 목록의 인스턴스 메소드는 다음과 같은 특징이 있습니다.

  • 팩토리 메서드에서 반환된 목록은 일반적으로 불변합니다. . 요소를 추가할 수 없음을 의미합니다. , 제거됨 , 또는 대체 목록에서. 모든 mutator 호출 목록의 메소드가 UnsupportedOperationException을 발생시킵니다. .
  • List의 포함된 요소가 변경 가능인 경우 , 목록의 내용이 변경된 것처럼 보일 수 있습니다.
  • 불변 목록은 널 요소를 허용하지 않는 정적 팩토리 메서드를 사용하여 생성할 수 있습니다. . null 요소로 만들려고 하면 NullPointerException이 발생합니다. .
  • 수정할 수 없는 목록은 직렬화 가능합니다. 모든 요소가 직렬화 가능한 경우.
  • 목록의 요소 순서는 제공된 매개변수 또는 제공된 배열의 요소 순서와 동일합니다.

구문

List.of(E... elements)

예시

import java.util.List;
public class UnmodifiedListTest {
   public static void main(String[] args) {
      List<String> countries = List.of("India", "Australia", "England", "Newzealand");
      System.out.println("Countries - " + countries);
      countries.add("Srilanka"); // throws UnsupportedOperationException
   }
}

출력

Countries - [India, Australia, England, Newzealand]
Exception in thread "main" java.lang.UnsupportedOperationException
 at java.base/java.util.ImmutableCollections.uoe(Unknown Source)
 at java.base/java.util.ImmutableCollections$AbstractImmutableList.add(Unknown Source)
 at UnmodifiedListTest.main(UnmodifiedListTest.java:7)