2011-03-24 19 views
7

Duplicar posible:
Storing primitive values in a Java collection?¿Por qué los tipos de datos primitivos no están permitidos en java.util.ArrayList?

ArrayList sólo acepta los tipos de referencia como su elemento, no tipos de datos primitivos. Al intentar hacerlo, produce un error de tiempo de compilación.

¿Cuál es el concepto detrás de esto? Parece una limitación, ¿no es así?

+0

ver [aquí] (http://stackoverflow.com/questions/2504959/storing-primitive-values-in-a-java-collection) –

+0

... que es en sí mismo un caso especial de [por qué usted puede ' t utilizar tipos primitivos con genéricos en general] (http://stackoverflow.com/questions/2721546/why-dont-generics-support-primitive-types). Aunque en la era anterior a los genéricos, aún no podía usar tipos primitivos con colecciones, porque no hay un tipo de base común para las primitivas. –

Respuesta

7

Todas las clases de colección de la ubicación de la memoria de la tienda Java de los objetos que recogen. Los valores primitivos no se ajustan a en con la misma definición.
Para evitar este problema, JDK5 en adelante tiene autoboxing - en el que las primitivas se convierten en objetos apropiados y viceversa cuando se agregan o se leen de las colecciones.

7

Porque Java solo puede usar clases (y no tipos primitivos) y matrices (también matrices para primitivas) para genéricos (entre < y>).

Lista de lista; Esa es también una razón por la que hay clases de contenedor para los tipos primitivos:

int -> Entero

booleano -> Boolean

doble -> Doble

byte -> Byte etc. ..

Cuestiones relacionadas