【发布时间】:2019-02-06 10:15:35
【问题描述】:
我遇到了在枚举声明中使用@Getter 的代码,我想知道是否可以在枚举声明中使用@Getter 以及它的用途是什么?
据我所知,@Getter 在成员变量上生成 getter 方法。我错过了什么吗?
是否也可以用@Getter 注释类?
【问题讨论】:
标签: java spring lombok accessor
我遇到了在枚举声明中使用@Getter 的代码,我想知道是否可以在枚举声明中使用@Getter 以及它的用途是什么?
据我所知,@Getter 在成员变量上生成 getter 方法。我错过了什么吗?
是否也可以用@Getter 注释类?
【问题讨论】:
标签: java spring lombok accessor
如果你检查Lombok's @Getter and @Setter Reference,你可以看到:
您还可以在类上添加@Getter 和/或@Setter 注解。在这种情况下,就好像你用注解来注解该类中的所有非静态字段。
这意味着当您将@Getter 放入Class/Enum 级别时,它将为该Class/Enum 上的所有非静态成员生成getters,就像您为所有这些成员重复放入@Getter。
示例:
为了说明这一点,这两个代码是等效的:
代码 1:
@Getter
public enum MyEnum {
private int member1;
private int member2;
}
代码 2:
public enum MyEnum {
@Getter
private int member1;
@Getter
private int member2;
}
这里将为两个成员生成getter 方法。
【讨论】:
如果使用 Getter 注解,则常量并不重要。但是对于您创建的所有其他变量,都存在一个 getter 方法:
@Getter
public enum Test {
TEST;
private int variable;
}
所以在这个例子中你只得到了一个变量的getter方法。
【讨论】:
稍后添加 我认为@cнŝdk 的答案要好得多。所以,请使用它。
最初写的
@Getter、@Setter 和 @Data 注释由 Lombok 库提供。 @Data 将生成 setter 和 getter。
是的,这些注解可以与类和枚举一起使用。
如果您使用的是 maven,那么您可以添加 Lombok 作为您的依赖项,如下所示:
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.16.12</version>
</dependency>
要了解更多关于龙目岛的信息,请访问https://projectlombok.org/。
【讨论】:
我们可以用@Getter 和/或@Setter 注释任何字段,让lombok 自动生成默认的getter/setter。 Please refer here 了解更多详情。
【讨论】: