>  기사  >  Java  >  Java에서 일반 배열을 만들 수 없는 이유는 무엇입니까?

Java에서 일반 배열을 만들 수 없는 이유는 무엇입니까?

Barbara Streisand
Barbara Streisand원래의
2024-11-03 10:39:03862검색

Why Can't You Create Generic Arrays in Java?

일반 배열 생성 오류: 대안 탐색

질문에 예시된 것처럼 Java에서 일반 클래스의 배열을 생성하려고 하면 필연적으로 오류가 발생합니다. Java에서는 이 기능을 지원하지 않으므로 대체 접근 방식이 필요합니다.

컬렉션 사용 고려

배열 대신 컬렉션을 활용하면 이러한 제약을 효과적으로 해결할 수 있습니다. 예를 들어 ArrayList는 객체 목록을 저장할 수 있어 데이터 관리에 유연성을 제공합니다.

또 다른 옵션: 보조 클래스

또 다른 실행 가능한 솔루션은 보조 클래스를 생성하는 것입니다. 수업. 예를 들어, MyObjectArrayList라는 클래스는 ArrayList를 확장할 수 있습니다. 이후에 MyObjectArrayList 인스턴스의 배열이 생성되어 문제를 피할 수 있습니다.

금지 사항 이해

Java의 일반 배열에 대한 금지 사항은 언어 설계에 깊이 뿌리를 두고 있습니다. . 다음 예는 이 제한을 정당화하는 잠재적인 시나리오를 보여줍니다.

<code class="java">List<String>[] lsa = new List<String>[10]; // illegal
Object[] oa = lsa;  // OK because List<String> is a subtype of Object
List<Integer> li = new ArrayList<Integer>();
li.add(new Integer(3));
oa[0] = li; 
String s = lsa[0].get(0);</code>

이 제한이 없으면 이러한 코드는 문자열용 배열에 정수 목록을 할당하는 등의 예기치 않은 동작을 초래할 수 있습니다.

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

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