使用自动格式化时,如何告诉(如果有的话)Eclipse 为 getter 或 setter 制作一行?
public User getUser() {
return user;
}
到:
public User getUser() { return user; }
如果您不喜欢 Java 强制您编写的所有样板,您可能会对Project Lombok作为替代解决方案感兴趣。
Project Lombok 不是试图格式化代码以最小化 getter 和 setter 的视觉影响,而是允许编译器在后台添加它们,并由类字段上的注释引导。
而不是像这样写一个类:
public class GetterSetterExample {
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;
}
}
你会写:
import lombok.AccessLevel;
import lombok.Getter;
import lombok.Setter;
public class GetterSetterExample {
@Getter @Setter private int age = 10;
@Setter(AccessLevel.PROTECTED) private String name;
}
(示例来自:http ://projectlombok.org/features/GetterSetter.html )
Eclipse 中的 Java 代码格式不区分 getter/setter 和类中的任何其他方法。所以这不能通过内置的 eclipse 格式来完成。
正如其他海报所说,Eclipse 目前无法做到这一点。但是,在https://bugs.eclipse.org/bugs/show_bug.cgi?id=205973有一个功能请求,如果它得到足够的支持,那么有人可能会实现它......
如何使用格式化程序开/关标签:
//@formatter:off
@override public final String getName() {return this.name;}
//@formatter:on
您需要确保启用/关闭标签(preferences/java/code style/formatter/edit/on off 标签)。这可能是默认设置。
对于一种方法,它与三行 getter 方法一样难看,但如果你有四个或五个以上,那么它看起来会更整洁。它还允许您将属性的 getter 和 setter 组合在一起,而不是先将所有 getter 分组,然后再将所有 setter 分组。
无论如何,这是我的解决方案。