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


8

私はAndroidを使い始めActivityばかりで、状態をバンドルに保存するチュートリアルを行っているときに、より一般的なListインターフェースを受け入れる代わりに、Bundleputメソッドが期待していることに気付きましたArrayLists

例:

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

私たちのほとんどは、オブジェクトがインターフェイスによって参照される必要があることを示唆している効果的なJavaの項目52に精通しているので、このAPI決定の背後にある理由は何だったのかと思います。

あるArrayListおそらくアンドロイドの優先リストの実装?

回答:


9

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

SDK-docの公共Bundle.Bundle(クラスローダー)

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

理にかなっています!誰かが決定的な答えを持っている場合に備えて、私はもう少し待つつもりです。
jramoyo 2013

チュートリアルを進めるほど、この回答の意味がわかります。だから私はそれを受け入れています:-)
jramoyo 2013
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.