Ответ 1
Из-за присущей сложности анализ потока лучше всего выполняется в небольших кусках. Анализ одного метода за один раз может быть выполнен с хорошей производительностью инструмента, тогда как анализ всей системы выходит за рамки для компилятора Eclipse Java. Преимущество : анализ выполняется быстро и может выполняться постепенно, чтобы компилятор мог предупреждать вас непосредственно по мере ввода. вниз: анализ не может "видеть", какие значения (нулевые или ненулевые) текут между методами (в качестве параметров и возвращаемых значений).
Здесь используются нулевые аннотации. Указав параметр метода как
@NonNull
, вы можете сообщить компилятору, что вы не хотите иметь нулевое значение в этой позиции.
Применение: Эта ссылка объясняет, какую аннотацию использовать там.
Использование 2
Getters/Setters
: Да, это возможно. Проект Lombok (http://projectlombok.org/index.html) определяет аннотации для генерации геттеров/сеттеров и многое другое.Итак, например
@lombok.Data; public class Person { private final String name; private int age; }
Будет генерировать getter для имени (не setter, поскольку он является окончательным) и getter/setter для возраста. Он также генерирует
equals, hashCode, toString
и construtor, инициализируя необходимые поля (имя). Добавление@AllArgsConstructor
будет генерировать конструктор, инициализирующий оба поля.Существуют и другие аннотации и параметры, позволяющие вам контролировать права доступа (если ваш геттер будет защищен или открыт), имена (getName или имя?) и т.д. И есть еще. Например, мне очень нравятся методы расширения.
Ломбок очень прост в использовании. Просто загрузите банку и используйте аннотации, тогда геттер/сеттеры могут использоваться в вашем коде без фактического указания. Более того, IDE, например Netbeans, поддерживает это, так что вы видите геттер/сеттер в завершении кода, навигации и т.д. Аннотации используются только во время компиляции не во время выполнения, поэтому вы не распространяете ломбок с вашей банкой.
NotNull: это поддерживается findbugs и IdeaJ IDE, возможно, другие