我有一个名为IDisplayEnum
的可显示枚举的接口。我将其用于几个检票口组件,在其中我称为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,所以我的枚举“不适合”。我可以用IDisplayEnum
解决此问题。现在我的问题是,这会产生什么影响?我有约20个枚举来实现此接口,并且使用很多。这会影响性能,安全性或任何常见的可序列化接口的缺点吗?
最佳答案
我不知道实现Serializable会有任何负面影响。
无论如何,Wicket组件树引用的所有内容都必须可序列化。
您可以使用IDetachableModels解决此问题,但是Model保留对包装对象的直接引用。