>Java >java지도 시간 >Arrays.asList()가 Java의 기본 배열에서 오작동하는 이유는 무엇입니까?

Arrays.asList()가 Java의 기본 배열에서 오작동하는 이유는 무엇입니까?

Susan Sarandon
Susan Sarandon원래의
2024-12-20 01:13:08780검색

Why Does Arrays.asList() Misbehave with Primitive Arrays in Java?

Arrays.asList()가 프리미티브를 사용하기 까다로울 수 있는 이유

Java의 Arrays.asList() 메소드를 사용하면 배열을 목록. 그러나 기본 배열을 사용하면 예기치 않게 동작할 수 있습니다.

질문: Arrays.asList(int[])가 List List?

답변: 대신 Java 제네릭은 기본 유형을 지원하지 않습니다. 대신 래퍼 클래스(예: Integer, Float)를 사용합니다. Arrays.asList()는 전달된 배열과 정확히 동일한 유형의 목록을 반환합니다. int[]는 int의 배열이므로 결과는 List

질문: int[]를 List로 변환하는 방법이 있습니까? ;?

답변: 아니요, 변환하는 직접적인 방법은 없습니다. int[]를 List로 Arrays.asList()를 사용합니다.

질문: 이 경우 오토박싱이 작동하지 않는 이유는 무엇입니까?

답변: 오토박싱은 개인에 대해서만 발생합니다. 프리미티브 배열이 아닌 프리미티브 값. 따라서 int[] int는 Integer[]로 자동 변환될 수 없습니다.

해결책:

List 프리미티브 배열에서 Guava의 com.google.common.primitive.Ints.asList() 메소드와 같은 추가 기능을 제공하는 타사 라이브러리를 사용할 수 있습니다. 이 메서드는 int[] 배열 주위에 List 래퍼를 명시적으로 생성합니다. 여기서 각 요소는 Integer로 묶입니다.

또는 Integer[] 배열로 시작할 수 있는 경우 Arrays.asList를 사용할 수 있습니다. ()는 List를 반환하는 것과 같습니다.

위 내용은 Arrays.asList()가 Java의 기본 배열에서 오작동하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.