21

使用自动格式化时,如何告诉(如果有的话)Eclipse 为 getter 或 setter 制作一行?

public User getUser() {
   return user;
}

到:

public User getUser() { return user; }
4

4 回答 4

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 )

于 2012-04-24T18:40:05.400 回答
4

Eclipse 中的 Java 代码格式不区分 getter/setter 和类中的任何其他方法。所以这不能通过内置的 eclipse 格式来完成。

于 2012-04-24T18:24:26.817 回答
4

正如其他海报所说,Eclipse 目前无法做到这一点。但是,在https://bugs.eclipse.org/bugs/show_bug.cgi?id=205973有一个功能请求,如果它得到足够的支持,那么有人可能会实现它......

于 2013-02-20T19:17:15.243 回答
3

如何使用格式化程序开/关标签:

//@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 分组。

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

于 2017-10-10T17:39:20.403 回答