Подтвердить что ты не робот

Какова цель интерфейса IsSerializable в GWT (относительно механизма RPC)

Какова цель интерфейса IsSerializable в GWT (относительно механизма RPC). Я никогда не мог найти хорошее объяснение, почему это так, и почему интерфейс Java Serializable по умолчанию не работает.

4b9b3361

Ответ 1

Оба Serializable и IsSerializable работают в соответствии с документацией по сериализации GWT:

Пользовательский класс сериализуется, если применимы все следующие условия:

  • Он присваивается IsSerializable или Serializable либо потому, что он непосредственно реализует один из этих интерфейсов, либо потому, что он происходит от суперкласса, который выполняет
  • Все нефинансовые, непереходные поля экземпляров сами являются сериализуемыми и
  • Начиная с GWT 1.5, он должен иметь конструктор по умолчанию (нулевой аргумент) (с любым модификатором доступа) или вообще без конструктора.

Одно из ключевых различий заключается в том, что по соображениям безопасности все классы Serializable должны быть включены в политику сериализации, которая генерируется во время компиляции, тогда как классы IsSerializable не имеют этого требования.

Если ваш интерес является исключительно в GWT, и вы не являетесь, например, поделитесь своими классами моделей между веб-приложением и другим приложением, я предлагаю вам реализовать ваши классы моделей /DTO IsSerializable.

Ответ 2

Если вы делитесь своими объектами с другими программами, используйте Serializable поскольку это стандартная java-библиотека,

Но если вы хотите передать его только между сервером и клиентом в GWT, используйте IsSerializable. Это поможет вам убедиться, что вы не можете начать передавать его в те места, в которые он не должен идти.