为什么LoadableDetachableModel.detach设置transientModelObject = null?

时间:2017-02-21 08:30:41

标签: wicket

LoadableDetachableModel transientModelObject是一个瞬态字段。为什么分离方法设置

transientModelObject=null

我问这个是因为它不会被序列化。

2 个答案:

答案 0 :(得分:1)

通常,您的组件将保留在内存中(如果容器没有将会话序列化为磁盘),因此使引用无效会最小化内存消耗。

为什么在下次请求之前不需要它时会浪费大量内存?

答案 1 :(得分:1)

原因是因为Page实例作为实时(非序列化)对象保存在http会话中。 LoadableDetachableModel的合同表明其modelObject将在请求周期内可用。如果不是null - 明确地detach(),那么它将在下一个请求中仍然可用。