用于getter / setter的Eclipse格式化程序为单行?

时间:2012-04-24 18:12:22

标签: java eclipse

在使用自动格式化时,如何判断(如果有的话)Eclipse为getter或setter创建单行?

public User getUser() {
   return user;
}

为:

public User getUser() { return user; }

4 个答案:

答案 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;
 }

(例如:http://projectlombok.org/features/GetterSetter.html

答案 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。

无论如何,这是我的解决方案。