2011-12-15 3 views
1

я играл с GWT, и я, кажется, имеют плохую привычку создавать классы, которые не соответствуют правилу для GWT сериализуемых объектов:Как заставить Eclipse предупреждать меня, когда я забываю создать конструктор по умолчанию в объекте GWT Serializable?

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

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

Обычно я забываю включить конструктор по умолчанию. Обычно я узнаю об этом, когда получаю исключение для сериализации во время выполнения. Это кажется мне ненужным. Несомненно, есть какой-то способ, которым Eclipse (или плагин Google) может статически анализировать мой код GWT и обнаруживать этот винт во время компиляции? Увидеть маленькую красноватую фигуру где-то бесконечно красивее, чем получить исключение во время выполнения.

Я надеюсь на решение как один из следующих, в порядке возрастания желания:

  • Config опции можно установить в Eclipse, или Google плагин, чтобы включить этот вид предупреждения/проверки
  • Дополнительный плагин, который я могу установить, что бы это сделать
  • Любой другой существующий способ получить работу.
  • Подсказки о том, как я могу изменить плагин Google, чтобы сделать это сам.
+0

Итак, вы создаете параметризованный конструктор, но забудьте создать публичный пустой? Я не видел плагина, который поможет вам. Это не проблема компиляции, даже если класс реализует Serializable. – Vladimir

+0

@Vladimir, Вы правы в том, что код компилируется. Тем не менее, существует много статического анализа, который может быть сделан, который не связан с тем, действительно ли компилируется код. Такие инструменты, как findbugs, checkstyle и другие, помогают людям идентифицировать ошибки во время компиляции. Кажется в высшей степени разумным ожидать, что можно написать инструмент для обнаружения сценария «класс реализует интерфейс IsSerializeable gwt, но не имеет конструктора по умолчанию» (как в стороне, я обычно делаю его закрытым, поскольку я не хочу никогда назовите это сам. GWT не заботится о том, какой модификатор доступа он имеет) –

ответ

1

Не знаю точного ответа, но я постараюсь выяснить, может ли это сделать checkstyle. Его можно вызывать из build (ant/maven), а также есть плагин Eclipse. Если такой проверки по умолчанию не существует, я думаю, что ее можно было бы добавить достаточно легко.