java - metodos - ¿Por qué está permitido agregar tipos de datos primitivos a una ArrayList?
imprimir arraylist java (1)
Entiendo que es posible agregar un Objeto Integer a una ArrayList de tipo Integer . Eso tiene sentido para mí. Me gusta esto:
ArrayList<Integer> list = new ArrayList<Integer>();
list.add(new Integer(3));
Pero, ¿por qué es posible agregar un tipo de datos primitivo como int en lugar de Integer ? Me gusta esto:
ArrayList<Integer> list = new ArrayList<Integer>();
list.add(3);
¿Por qué está permitido?
Esto se llama autoboxing . Para las clases que tienen primitivas correspondientes (por ejemplo, Long -> long , Integer -> int ), Java manejará la conversión por usted.
Cabe señalar que este comportamiento viene con algunas esquinas oscuras:
- una pena de rendimiento;
- Casos de esquina: cuando
nullse desempaqueta en una primitiva, se lanzará unaNullPointerException, que podría ser inesperada para el programador, ya que parece que una primitiva arroja la excepción.