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