objetos metodos llenar imprimir enteros elementos como clase agregar java generics object integer primitive-types

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:

  1. una pena de rendimiento;
  2. Casos de esquina: cuando null se desempaqueta en una primitiva, se lanzará una NullPointerException , que podría ser inesperada para el programador, ya que parece que una primitiva arroja la excepción.