1

違いは何ですか:

  • Object put(シリアライズ可能なキー、オブジェクト値)
  • void add(シリアライズ可能なキー、オブジェクト値)

JSFのStateHelperのメソッド?

4

2 に答える 2

2

私はAPIドキュメントがあまり役に立たないことに気づき、調査しました。add が呼び出されるたびに、指定されたキーの下に保存されているリストに別の値が追加されます。そのキーで get を呼び出すと、リストが返されます。add メソッドを使用すると、そのリストを作成する手間が省け、コーナー ケースを監視できます。キーが空のときにリストを作成します。

あなたが言及したプットは、マップのようなプットと同様に機能します。キーの下に値を保存します。

対照的に、3 つのパラメーターを持つオーバーロードされた put があります。そのキーの下にマップを作成し、別のキー/値のペアでそのマップにプットします。繰り返しますが、キーを取得するとマップが表示されます。

それが基本的に追加と配置の方法です。部分的な状態を機能させるために、さらにいくつかの作業が行われています。要約すると、キーの下に複数の値を追加する場合は、add を使用できます。put に 2 つのパラメーターを指定すると、マップのような動作が得られます。3 つのパラメーターを指定して put を使用すると、キーの下のマップを埋めることができます。

于 2013-03-13T14:41:04.057 に答える
0

Mojarra APIドキュメントから:

void add(java.io.Serializable key, java.lang.Object value)
指定された値を StateHelper 内部の List に格納します。

java.lang.Object put(java.io.Serializable key, java.lang.Object value) 以前に格納された値を返し、指定されたキーと値のペアを格納します。

MyFaces も同様の方法で実装したと思います。

于 2012-08-29T14:33:45.137 に答える