【发布时间】:2012-08-24 04:35:03
【问题描述】:
有什么区别:
- Object put(Serializable key, Object value)
- void add(Serializable key, Object value)
JSF 中 StateHelper 中的方法?
【问题讨论】:
标签: jsf-2 java-ee-6 myfaces composite-component uicomponents
有什么区别:
JSF 中 StateHelper 中的方法?
【问题讨论】:
标签: jsf-2 java-ee-6 myfaces composite-component uicomponents
我发现 api 文档对自己没有帮助并对其进行了调查。每次调用 add 时,它都会将另一个值附加到保存在给定键下的列表中。如果你在那个键上调用 get ,你会得到一个列表。 add 方法可以节省您创建该列表并监视极端情况,例如。键为空时创建列表。
你提到的 put 的工作方式类似于 map-like put。它在一个键下保存一个值。
相比之下,有 3 个参数的重载 put。它在该键下创建一个映射,并使用另一对键/值对该映射进行放置。同样,按一下键会给你一张地图。
这基本上就是 add 和 put 的工作方式。还有一些事情可以使部分状态正常工作。总结一下:当你想在一个键下添加多个值时,你可以使用 add。带有 2 个参数的 put 可以为您提供类似地图的行为。 put 带有 3 个参数可以让您在一个键下填充地图。
【讨论】:
来自Mojarra API 文档:
void add(java.io.Serializable key, java.lang.Object 值)
将指定的值存储在内部的列表中 状态助手。java.lang.Object put(java.io.Serializable key, java.lang.Object value) 返回之前存储的值并存储指定的key/value 对。
我猜 MyFaces 以类似的方式实现它。
【讨论】: