如何在java中使用注释自动设置和获取?

sai*_*aif 6 java annotations interface

为所有对象添加 getter 和 setter 方法非常困难,有什么简单的方法可以做到这一点吗?我们可以为此创建一个接口或注释吗?

private String name; public void setName(String name) {this.name = name;} public String getName() {return name;}

我希望有类似的东西@GetterSetter private String name;

我知道 Eclipse 和 IDEA 会很容易地生成我想要的东西,我的代码看起来很干净,我不想让我的行数增加 x*5。

Har*_*hna 5

您可以尝试 lombok 库。通过使用它,您可以避免编写 getter、setter、hashCode、toString 方法。一个典型的例子如下所示。

import lombok.EqualsAndHashCode;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;

@EqualsAndHashCode()
@ToString
public class Employee {
 @Getter @Setter private int id;
 @Getter @Setter private String firstName;
 @Getter @Setter private String lastName;
 @Getter @Setter private int age;
}
Run Code Online (Sandbox Code Playgroud)

您可以参考 https://projectlombok.org/

有关示例,请参阅此链接


小智 4

如果您不想使用 inteliJ 特殊功能或外部库,您必须编写自己的注释处理器,它将处理示例 setter 和 getter 的注释(例如:@Get、@Set)。

但是在定义这两个注释时,您必须记住元注释的特殊类型: @Retention(RetentionPolicy.RUNTIME)

因为如果没有此 RetentionPolicy,您的 getter 和 setter 注释将在最终程序中不可用!

您使用两个注释的反射编写的注释处理器。

如果您不想编写此处理器​​,您甚至可以使用默认 JDK 中的 apt。

干杯,gjm