我有一个名为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保留对包装对象的直接引用。

10-02 22:30