¿Por qué la API Bundle de Android acepta ArrayLists en lugar de Listas?

8

Soy nuevo en Android y, mientras revisaba un tutorial sobre cómo guardar el Activityestado en un paquete , noté que, en lugar de aceptar la Listinterfaz más genérica , Bundlelos métodos put están esperando ArrayLists.

Ejemplo:

Bundle.putCharSequenceArrayList(key, value)
Bundle.putIntegerArrayList(key, value)
Bundle.putParcelableArrayList(key, value)
Bundle.putStringArrayList(key, value)

La mayoría de nosotros estamos familiarizados con el elemento 52 de Java efectivo que sugiere que los objetos deben ser referenciados por su interfaz, por lo que me pregunto cuál fue la razón detrás de esta decisión de API.

¿Es ArrayListquizás la implementación de la lista preferida en Android?

jramoyo
fuente

Respuestas:

9

Solo una suposición: tal vez el contenido de Bundele debe ser serializable y no todas las implementaciones de Listas son serializables.

Desde sdk-doc public Bundle.Bundle (ClassLoader)

  Construye un nuevo paquete vacío que utiliza un específico 
  ClassLoader para instanciar objetos parcelables y serializables.
k3b
fuente
¡tiene sentido! esperaré un poco más en caso de que alguien tenga una respuesta definitiva.
jramoyo
cuanto más paso por el tutorial, más tiene sentido esta respuesta. así que lo acepto :-)
jramoyo