Collections.EMPTY_LIST 및 Collections.emptyList() 간단한 사용 환경

1538 단어 jdk
1. 배경이 어떤 상황에서 우리는 항상 빈 집합 대상을 발휘해야 한다. 예를 들어 데이터 조회를 할 때 NULL이나 이상을 발휘하지 않으면 빈 집합 대상을 되돌릴 수 있다.JDK가 집합 대상을 되돌려주는 두 가지 방법을 제공했는데 어떤 차이가 있을까요?그럼 코드를 보세요!2. 원본 코드 해석
 
//EMPTY_LIST  Collections , , 
 public static final List EMPTY_LIST = new EmptyList();

// emptyList 
 public static final <T> List<T> emptyList() {
    return (List<T>) EMPTY_LIST;
    }
 
위에서 알 수 있듯이 emptyList는 EMPTY에 불과하다.LIST가 일반 지원을 했습니다.이 점에서 우리는 양자의 서로 다른 사용 장면을 뚜렷하게 이해할 수 있다!일반 모드가 필요하지 않으면 Collections를 직접 사용할 수 있고, 반대로 emptyList () 를 사용할 수 있습니다.3. EMPTY 사용LIST는 더 이상 소개하지 않겠습니다. 우리는 직접 Collections를 사용할 수 있습니다.EMPTY_LIST. Collections의 경우emptyList()의 사용에 조금 주의할 점이 있습니다.이 빈 집합을 저장하기 위해 변수를 정의했다면 문제없습니다.
 
List<Person> emptyPersonList = Collections.emptyList(); // 。
 
만약 어떤 장면에서 빈 대상을 값을 부여해야 한다면 다음과 같은 문법이 필요하다
    organization.setPersonList(Collections. emptyList());
organization.setPersonList(Collections.<Person> emptyList()); 
 
4. BTW는 원본에 존재하지만
  public int size() {return 0;}

   public Object get(int index) {
            throw new IndexOutOfBoundsException("Index: "+index);
   }
 
하지만 우리에겐 for(int i = 0;i <...)아니면 for(Person p:person List)도 get(int index)에 호출되지 않으니 안심하고 사용할 수 있습니다!앞의 방식은 우리가 잘 이해할 수 있다. 왜냐하면 우선size () 를 호출했기 때문이다.후자foreach의 실현 원리는 더 연구해야 한다!

좋은 웹페이지 즐겨찾기