Arrays.asList() 수수께끼: 한계 이해
Java에서 Arrays.asList 메소드는 배열을 변환하는 편리한 방법을 제공합니다. 목록으로. 그러나 float[]와 같은 기본 배열을 처리할 때 예외가 발생합니다.
이 코드 조각은 예상대로 작동하여 정수 개체 목록을 생성합니다.
List<Integer> list = Arrays.asList(1,2,3,4,5);
반면에 다음 코드는 List
int[] ints = new int[] {1,2,3,4,5}; List<Integer> list = Arrays.asList(ints);
대신 출력은 List
Arrays.asList는 배열의 구문적 약칭인 varargs 매개변수를 허용합니다. 그러나 프리미티브의 경우 각 프리미티브 값이 아닌 전체 배열을 단일 요소로 처리합니다. 이로 인해 개체로 래핑된 개별 기본 값이 아닌 기본 형식의 배열이 포함된 목록이 생성됩니다.
안타깝습니다. , int[]를 List
오토박싱은 일반적으로 프리미티브를 변환합니다. 개체 컬렉션에 사용하기 위해 해당 래퍼 개체로 변환합니다. 그러나 프리미티브 배열에 적용하면 요소별로 발생하지 않습니다. 이러한 제한은 Java에서 배열 자동 박싱이 지원되지 않는다는 사실에서 비롯됩니다.
위 내용은 Java에서 `Arrays.asList()` Autobox 기본 배열이 작동하지 않는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!