我有一个名为IDisplayEnum
的可显示枚举的界面。我将它用于几个wicket组件,我调用display()
并获得枚举的正确表示。要创建一个DisplayEnumLabel,我有这样的代码:
public class DisplayEnumLabel extends Label {
public DisplayEnumLabel(String id, IModel<? extends IDisplayEnum> model) {
super(id, model);
}
}
然后我使用:
创建add(new DisplayEnumLabel(new PropertyModel(object,"fieldname")));
现在,有时我想在不需要PropertyModel的情况下Model.of(T object)
,但T
应该扩展Serializable,这样我的枚举就不适合了#34;。我可以使用IDisplayEnum
解决这个问题。Serailizable
现在我的问题是,这有什么影响?我有一个~20个实现这个界面的枚举,它被大量使用。这会影响性能,安全性或任何常见的Serializable接口缺点吗?
答案 0 :(得分:1)
我不知道实施Serializable有任何负面影响。
Wicket组件树引用的所有内容无论如何都必须是可序列化的。 您可以使用IDetachableModels来解决这个问题,但Model会保留对包装对象的直接引用。