Синтаксический супер сахар
Интереснейший проект: Project Lombok "Spice up your java"
http://projectlombok.org/
Представляет собой несколько аннотаций и их процессор.
Позволяет перестать писать и засорять исходный код boilerplate кодом.
Т.е. http://projectlombok.org/features/index.html
@Getter / @Setter
Never write public int getFoo() {return foo;} again.
@ToString
No need to start a debugger to see your fields: Just let lombok generate a toString for you!
@EqualsAndHashCode
Equality made easy: Generates hashCode and equals implementations from the fields of your object.
и т.д.
В исходном коде:
public class GetterSetterExample {//1
@Getter @Setter private int age = 10;
@Setter(AccessLevel.PROTECTED) private String name;
}
В байткоде окажется такой код:
public class GetterSetterExample {//2
private int age = 10;
private String name;
public int getAge() { return age; }
public void setAge(int age) { this.age = age; }
protected void setName(String name) { this.name = name; }
}
Работает с javac и eclipse (делают под netbeans) т.е. в редакторе класс выглядит как в //1,
а в списке его методов всё как в //2.
Крик души: JetBrains, элит-программеры и/или фанаты сделайте такое в IDEA pls pls pls!
UPDATE!
Люди! Ну что вы привязались конкретно к @Getter / @Setter там и другие аннотации есть.
Я не стал всё в посте дублировать.
http://projectlombok.org/
Представляет собой несколько аннотаций и их процессор.
Позволяет перестать писать и засорять исходный код boilerplate кодом.
Т.е. http://projectlombok.org/features/index.html
@Getter / @Setter
Never write public int getFoo() {return foo;} again.
@ToString
No need to start a debugger to see your fields: Just let lombok generate a toString for you!
@EqualsAndHashCode
Equality made easy: Generates hashCode and equals implementations from the fields of your object.
и т.д.
В исходном коде:
public class GetterSetterExample {//1
@Getter @Setter private int age = 10;
@Setter(AccessLevel.PROTECTED) private String name;
}
В байткоде окажется такой код:
public class GetterSetterExample {//2
private int age = 10;
private String name;
public int getAge() { return age; }
public void setAge(int age) { this.age = age; }
protected void setName(String name) { this.name = name; }
}
Работает с javac и eclipse (делают под netbeans) т.е. в редакторе класс выглядит как в //1,
а в списке его методов всё как в //2.
Крик души: JetBrains, элит-программеры и/или фанаты сделайте такое в IDEA pls pls pls!
UPDATE!
Люди! Ну что вы привязались конкретно к @Getter / @Setter там и другие аннотации есть.
Я не стал всё в посте дублировать.
