반응형
Collections.emptyList()와 Collections의 차이점은 무엇입니까?빈 목록
Java에는 Collections.emptyList()와 Collections가 있습니다.[EMPLY_LIST] (비어 있음)둘 다 동일한 속성을 가집니다.
빈 목록(불변)을 반환합니다.이 목록은 직렬화할 수 있습니다.
그렇다면 둘 중 하나를 사용하는 것과 다른 하나를 사용하는 것의 정확한 차이점은 무엇일까요?
Collections.EMPTY_LIST
이전 스타일을 반환합니다.Collections.emptyList()
type-module을 사용하므로 반환한다.
collections.emptyList()는 Java 1.5에서 추가되었으며 항상 권장됩니다.이렇게 하면 코드 내에서 불필요하게 캐스트를 할 필요가 없습니다.
Collections.emptyList()
본질적으로 캐스팅을 하는 거죠
@SuppressWarnings("unchecked")
public static final <T> List<T> emptyList() {
return (List<T>) EMPTY_LIST;
}
소스에 대해서 설명하겠습니다.
public static final List EMPTY_LIST = new EmptyList<>();
그리고.
@SuppressWarnings("unchecked")
public static final <T> List<T> emptyList() {
return (List<T>) EMPTY_LIST;
}
즉, EMTIFY_LIST는 safe 타입이 아닙니다.
List list = Collections.EMPTY_LIST;
Set set = Collections.EMPTY_SET;
Map map = Collections.EMPTY_MAP;
비교 대상:
List<String> s = Collections.emptyList();
Set<Long> l = Collections.emptySet();
Map<Date, String> d = Collections.emptyMap();
그들은 완전히 동등한 대상이다.
public static final List EMPTY_LIST = new EmptyList<>();
public static final <T> List<T> emptyList() {
return (List<T>) EMPTY_LIST;
}
유일한 것은 그것이다.emptyList()
범용 반환List<T>
따라서 이 목록을 경고 없이 범용 컬렉션에 할당할 수 있습니다.
언급URL : https://stackoverflow.com/questions/14870819/what-is-the-difference-between-collections-emptylist-and-collections-empty-lis
반응형
'sourcecode' 카테고리의 다른 글
Class.getName() 클래스 이름만 가져옵니다. (0) | 2022.09.24 |
---|---|
MySQL "WITH" 절 (0) | 2022.09.24 |
XML 문서에서 문자열로의 (0) | 2022.09.24 |
동일한 테이블 내의 여러 스레드에 배치 삽입을 사용한 MySQL 벤치마크 (0) | 2022.09.24 |
mySQL replace()를 사용하여 여러 레코드의 문자열을 대체하려면 어떻게 해야 합니까? (0) | 2022.09.24 |