在使用自动格式化时,如何判断(如果有的话)Eclipse为getter或setter创建单行?
public User getUser() {
return user;
}
为:
public User getUser() { return user; }
答案 0 :(得分:12)
如果你不喜欢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;
}
答案 1 :(得分:4)
Eclipse中的Java代码格式化不区分getter / setter和类中的任何其他方法。所以这不能通过内置的eclipse格式来完成。
答案 2 :(得分:3)
正如其他海报所述,Eclipse目前无法做到这一点。然而,在https://bugs.eclipse.org/bugs/show_bug.cgi?id=205973有一个功能请求,如果它有足够的upvotes,那么有可能有人可能会实现它......
答案 3 :(得分:3)
如何使用格式化程序开/关标记:
//@formatter:off
@override public final String getName() {return this.name;}
//@formatter:on
您需要确保启用了开/关标签(preferences / java / code style / formatter / edit / on off标签)。这可能是默认值。
对于一种方法,它将像三线吸气器方法一样丑陋,但如果你有超过四或五,那么它看起来更整洁。 它还允许您将属性的getter和setter分组,而不是所有getter和所有setter。
无论如何,这是我的解决方案。