web-dev-qa-db-ja.com

AndroidのバンドルAPIがリストではなくArrayListを受け入れるのはなぜですか

私はAndroidを初めて使用し、Activity状態を バンドル に保存するチュートリアルを行っているときに、より一般的なものを受け入れる代わりに、 Listインターフェース、BundleのputメソッドはArrayListsを期待しています。

例:

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

ほとんどの人は Effective Javaのitem 52 に精通しており、オブジェクトはインターフェースから参照する必要があることを示唆しているため、このAPIの決定の背後にある理由は何なのかと思います。

ArrayListはおそらくAndroidでの推奨リスト実装ですか?

8
jramoyo

ただの推測です。おそらくBundeleのコンテンツはシリアライズ可能でなければならず、すべてのリストの実装がシリアライズ可能であるとは限りません。

From sdk-doc public Bundle.Bundle(ClassLoader) から

 ParcelableおよびSerializableオブジェクトをインスタンス化するために特定の
 ClassLoaderを使用する新しい空のバンドルを構築します。
9
k3b