>  기사  >  Java  >  Java에서 LinkedList 배열을 만들 수 없는 이유는 무엇이며 어떻게 해결합니까?

Java에서 LinkedList 배열을 만들 수 없는 이유는 무엇이며 어떻게 해결합니까?

Susan Sarandon
Susan Sarandon원래의
2024-10-27 07:31:29908검색

Why Can't I Create an Array of LinkedLists in Java and How Do I Fix It?

Java에서 LinkedList 배열 생성

Java에서는 LinkedList 배열을 생성하려고 할 때 질문이 발생합니다. private LinkedList[] myMatrix와 같은 배열을 선언할 때 배열은 다음 줄을 사용하여 할당될 수 있습니다: myMatrix = new LinkedList[numRows]. 그러나 이 전략은 LinkedList 생성할 수 없습니다.

두 가지 문제가 발생합니다.

  1. 이 상황을 일으키는 오류는 무엇입니까?
  2. 왜 LinkedList 유형이 배열 선언에 허용됩니까? 생성할 수 없습니까?

이 시나리오에서는 IntegerNode가 사용자 정의 클래스라는 점에 유의하는 것이 중요합니다.

해결책

해결책 이 문제는 배열 생성을 허용하도록 선언에서 유형을 캐스팅하는 것입니다. 수정된 선언은 다음과 같습니다.

myMatrix = (LinkedList<IntegerNode>[]) new LinkedList<?>[numRows];

설명

Java에서는 일반 배열이 직접 지원되지 않습니다. 대신 원시 유형(즉, 유형 매개변수가 없는 유형)이 사용됩니다. 유형을 캐스팅하면 컴파일러가 배열에 대한 올바른 일반 유형을 유추할 수 있습니다.

따라서 선언의 LinkedList[] 유형은 직접 생성할 수 없더라도 허용됩니다. 이는 컴파일러가 이를 원시 유형으로 간주하여 필요한 특정 일반 유형으로 캐스팅하는 것을 프로그래머에게 맡기기 때문입니다.

위 내용은 Java에서 LinkedList 배열을 만들 수 없는 이유는 무엇이며 어떻게 해결합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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