Использование @NotNull в проекте, в котором работают как разработчики IntelliJ, так и Eclipse

Сотрудник IntelliJ IDEA (работа над другим проектом) показал мне потрясающую аннотацию @NotNull. Я читал здесь сообщения о SO о том, как начать добавлять @NotNull повсюду, где было много времени и головных болей (и IntelliJ 10 может даже автоматически добавлять @NotNull в старый код, когда обнаруживает, что null приведет к хаосу).

Так как я прочитал свое первое сообщение "Вероятное нарушение @NotNull" (в режиме реального времени, в среде IDE, даже на частичном .java файле, который еще не компилируется), моя челюсть упала, и я получил доступ.

Итак, мне было интересно: есть ли что-то, что нужно знать, если мы хотим начать использовать @NotNull в проекте, где разработчики используют как Eclipse, так и IntelliJ?

Я знаю, что IntelliJ поставляется с аннотациями. Является ли это совместимым с Eclipse?

Ответы

Ответ 1

Существует также возможность хранить аннотации вне источника. Настройки > Стиль кодa > Генерация кодa > Используйте внешние аннотации. Аннотации затем сохраняются в файле annotations.xml, а не в источнике. Таким образом, пользователям Eclipse никогда не придется видеть аннотации. Расположение файла annotations.xml можно настроить, и, вероятно, лучше всего сохранить файл с проектом в управлении версиями.

См

http://www.jetbrains.com/idea/webhelp/using-external-annotations.html http://blogs.jetbrains.com/idea/2008/02/external-annotations/

Ответ 2

Вы можете использовать annotations.jar с Eclipse, но вы, вероятно, не получите каких-либо преимуществ... См. этот сообщение SO.

Ответ 3

Вы можете поддерживать обе IDE с помощью FindBugs @NonNull и связанных с ними плагинов IDE.

Ответ 4

Findbugs имеет аналогичную функциональность, но интеграция - это бледная тень встроенного IntelliJ.

Ответ 5

Я бы спросил, почему одна команда не использует общую среду IDE. Почему бы не стандартизировать одно или другое? (Вы знаете, с кем я порекомендую, чтобы вы пошли.)