#java #serialization #wicket #wicket-1.5
#java #сериализация #калитка #калитка-1.5
Вопрос:
У меня есть вызываемый интерфейс для отображаемых перечислений 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")));
Теперь иногда я хочу сделать Model.of(T object)
, когда PropertyModel не нужен, но здесь T
следует расширить Serializable, чтобы мои перечисления «не подходили». Я могу решить эту проблему с помощью расширения IDisplayEnum
Serailizable
.
Теперь мой вопрос в том, каково влияние этого? У меня есть ~ 20 перечислений, реализующих этот интерфейс, и он часто используется. Повлияет ли это на производительность, безопасность или на какие-либо обычные недостатки сериализуемого интерфейса?
Ответ №1:
Я не знаю о каких-либо негативных последствиях реализации Serializable.
Все, на что ссылается дерево компонентов Wicket, в любом случае должно быть сериализуемым. Вы можете обойти это, используя IDetachableModels, но Model сохраняет прямую ссылку на обернутый объект.