Home > Java > javaTutorial > Why Can\'t You Create Generic Arrays in Java?

Why Can\'t You Create Generic Arrays in Java?

Barbara Streisand
Release: 2024-11-03 10:39:03
Original
919 people have browsed it

Why Can't You Create Generic Arrays in Java?

Generic Array Creation Error: Exploring Alternatives

Attempting to create an array of a generic class in Java, as exemplified in the question, will inevitably encounter an error. Java lacks support for this feature, necessitating alternative approaches.

Consider Using a Collection

Instead of an array, utilizing a collection can effectively address this constraint. An ArrayList, for instance, can store a list of objects, providing flexibility in managing the data.

Another Option: Auxilliary Class

Another viable solution involves creating an auxiliary class. For example, a class named MyObjectArrayList could extend ArrayList. Subsequently, an array of MyObjectArrayList instances could be created, circumventing the issue.

Understanding the Prohibition

The prohibition against generic arrays in Java is deeply rooted in the language's design. The following example illustrates a potential scenario that justifies this restriction:

<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>
Copy after login

Without this limitation, such code could lead to unexpected behavior, such as assigning a list of integers to an array intended for strings.

The above is the detailed content of Why Can\'t You Create Generic Arrays in Java?. For more information, please follow other related articles on the PHP Chinese website!

source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Latest Articles by Author
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template