Какова цель интерфейса IsSerializable в GWT (относительно механизма RPC). Я никогда не мог найти хорошее объяснение относительно того, почему это - способ, которым это и почему Java по умолчанию сериализуемый интерфейс меток не работает.
Как Serializable
, так и IsSerializable
работают в соответствии с документами сериализации GWT :
Пользовательский класс сериализуем, если выполняются все следующие условия. :
- Его можно присвоить IsSerializable или Serializable, либо потому, что он напрямую реализует один из этих интерфейсов, либо потому, что он является производным от суперкласса, который выполняет
- Все неокончательные, непереходные поля экземпляра сами сериализуемы, и
- Начиная с GWT 1.5, он должен иметь конструктор по умолчанию (с нулевым аргументом) (с любым модификатором доступа) или вообще не иметь конструктора.
Одно ключевое отличие состоит в том, что по соображениям безопасности все классы Serializable
должны быть включены в политику сериализации, которая создается во время компиляции, в то время как классы IsSerializable
не имеют это требование.
Если вас интересует исключительно GWT, а вы не , например. разделяйте классы вашей модели между веб-приложением и другим приложением, я предлагаю вам реализовать классы модели / DTO IsSerializable
.
Если вы делитесь своими объектами с другими программами, то используйте Serializable , так как это стандартная функция библиотеки java,
Но если вы хотите передавать его только между сервером и клиентом в GWT, то используйте IsSerializable. Это поможет вам убедиться, что вы не начнете передавать ее туда, куда она не должна передаваться.