Warum akzeptiert die Bundle-API von Android ArrayLists anstelle von Lists?


8

Ich bin neu in Android und als ich ein Tutorial zum Speichern des ActivityStatus in einem Bundle durchgesehen habe , habe ich festgestellt, dass die Put-Methoden die allgemeinere ListOberfläche nicht akzeptieren, sondern Bundleerwarten ArrayLists.

Beispiel:

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

Die meisten von uns sind mit Punkt 52 von Effective Java vertraut , der darauf hinweist, dass Objekte über ihre Schnittstelle referenziert werden müssen. Daher frage ich mich, was der Grund für diese API-Entscheidung war.

Ist ArrayListvielleicht die bevorzugte Listenimplementierung in Android?

Antworten:


9

Nur eine Vermutung: Möglicherweise muss der Bundele-Inhalt serialisierbar sein und nicht jede Lists-Implementierung ist serialisierbar.

Von sdk-doc public Bundle.Bundle (ClassLoader)

  Erstellt ein neues, leeres Bundle, das ein bestimmtes verwendet 
  ClassLoader zum Instanziieren von paketierbaren und serialisierbaren Objekten.

macht Sinn! Ich werde noch eine Weile warten, falls jemand eine endgültige Antwort hat.
Jramoyo

Je mehr ich durch das Tutorial gehe, desto sinnvoller ist diese Antwort. also akzeptiere ich es :-)
jramoyo
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.