I’m new to Android and while going through a tutorial on saving Activity
state to a Bundle, I noticed that instead of accepting the more generic List
interface, Bundle
‘s put methods are expecting ArrayLists
.
Example:
Bundle.putCharSequenceArrayList(key, value)
Bundle.putIntegerArrayList(key, value)
Bundle.putParcelableArrayList(key, value)
Bundle.putStringArrayList(key, value)
Most of us are familiar with item 52 of Effective Java suggesting that objects must be refered to by their interface, so I am wondering what was the reason behind this API decision.
Is ArrayList
perhaps the preferred list implementation in Android?
Just a guess: Maybe Bundele-content must be be serializable and not every Lists implementation is serializable.
From sdk-doc public Bundle.Bundle (ClassLoader)
Constructs a new, empty Bundle that uses a specific ClassLoader for instantiating Parcelable and Serializable objects.
2