如何在java中使用注释制作自动setter和getter?

时间:2018-02-02 09:12:15

标签: java interface annotations

为所有对象添加getter和setter方法非常困难有没有简单的方法呢?我们可以为它创建一个界面或注释吗?

REQUEST_URI

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

之类的东西

我知道Eclipse和IDEA会轻松生成我希望我的代码看起来干净的东西我不想让我的行数x * 5更多。

3 个答案:

答案 0 :(得分:3)

您可以尝试使用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;
}

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

有关示例,请参阅此link

答案 1 :(得分:1)

如果你使用intelliJ,你可以使用键盘快捷键,它并不难。 只需按Alt +插入,选择getter和setter然后就完成了!

答案 2 :(得分:1)

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

但是在定义两个注释时,您必须记住特殊类型的元注释:     var obj = { a: "foo", b: obj }; var circular_replacer = (value) => { var seen = []; if (value != null && typeof value == "object") { if (seen.indexOf(value) >= 0) return; seen.push(value); } return value; }; obj = circular_replacer(obj);

因为没有这个RetentionPolicy你的getter&setter的注释在最终的程序中不可用!

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

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

干杯,gjm