У меня есть проект GWT, который работает нормально, и я использую кучу разделяемых классов. На этом этапе проекта мне нужно поделиться POJO с другой библиотекой.
Я решил разместить POJO в библиотеке.
public class Application implements IsSerializable {
// ....
}
Поскольку эта библиотека является нейтральной с точки зрения технологии, я хотел бы избавиться от IsSerializable
и зависимости от GWT. Имеет ли это смысл?
Нужно ли мне что-либо делать на стороне GWT проекта?
Вы можете использовать стандартный интерфейс java.io.Serializable
вместо (в настоящее время несколько устаревшего) IsSerializable
. Причина, по которой она была введена, заключалась в том, чтобы отличить сериализацию GWT RPC от Java. Из официальной записи FAQ на эту тему:
- Семантика сериализации GWT намного менее сложна, чем стандартная сериализация Java, и поэтому использовать
java.io.Serializable
поскольку интерфейс маркера будет означать, что система сериализации GWT способна больше, чем на самом деле.- И наоборот, механизм сериализации GWT проще, чем стандартные Java, поэтому использование
java.io.Serializable
означает, что пользователям больше нужно беспокоиться (например, идентификаторы версий сериализации), чем они на самом деле.- GWT реализует только подмножество полных Java JRE-классов и не реализует ничего в
java.io
Чтобы использоватьjava.io.Serializable
поскольку интерфейс маркера сериализации GWT RPC размывает сообщение о том, чтоjava.io
не может использоваться в приложении GWT.В то время как каждый из вышеперечисленных пунктов все еще сохраняется, команда GWT считает, что сообщество в целом осведомлено об этих проблемах, но предпочло удобство использования стандартного интерфейса
java.io.Serializable
а не для того, чтобы их классы реализовали интерфейс маркераIsSerializable
(...).
IsSerializable
так иSerializable
.