如何关闭 getter/setter only for one instance non-final field? [龙目岛项目]
How to turn off getter/setter only for one instance non-final field? [Project Lombok]
public @Data class Person { ... }
据我所知,当我用 @Data
注释标记 class 时,Lombok 将为所有字段提供 getters,为所有非最终领域。我想为一个实例的非最终字段关闭 getter 和 setter 仅 ,我该如何实现?
我期待什么?找到像
这样的注释
@Setter(provide=false)
@Getter(provide=false)
private Map<...> dialogs;
或
@Data(excludeFields={"dialogs"})
我在谷歌上搜索了很多,并在官方网站上查找,但我一无所获。
您的帮助将不胜感激。谢谢。
为了避免为特定字段生成Getter/Setter,可以使用AccessLevel.NONE
,如webpage for Getter/Setter[=15中所述=]
@Data
public class Person {
private String name;
private int age;
@Getter(AccessLevel.NONE) @Setter(AccessLevel.NONE)
private Map<String, String> dialog;
}
编辑: 这个答案最初建议使用 AccessLevel.PRIVATE
。正确的方法是使用 AccessLevel.NONE
作为另一个答案中提到的 @Roel_Spilker 。但这个回答被提问者接受了。为了避免将来造成混淆,我编辑了它以使用正确的方法。
您可以按照 the website 中所述在字段上使用 @Getter(AccessLevel.NONE) @Setter(AccessLevel.NONE)
。
披露:我是 Lombok 开发人员。
public @Data class Person { ... }
据我所知,当我用 @Data
注释标记 class 时,Lombok 将为所有字段提供 getters,为所有非最终领域。我想为一个实例的非最终字段关闭 getter 和 setter 仅 ,我该如何实现?
我期待什么?找到像
这样的注释@Setter(provide=false)
@Getter(provide=false)
private Map<...> dialogs;
或
@Data(excludeFields={"dialogs"})
我在谷歌上搜索了很多,并在官方网站上查找,但我一无所获。
您的帮助将不胜感激。谢谢。
为了避免为特定字段生成Getter/Setter,可以使用AccessLevel.NONE
,如webpage for Getter/Setter[=15中所述=]
@Data
public class Person {
private String name;
private int age;
@Getter(AccessLevel.NONE) @Setter(AccessLevel.NONE)
private Map<String, String> dialog;
}
编辑: 这个答案最初建议使用 AccessLevel.PRIVATE
。正确的方法是使用 AccessLevel.NONE
作为另一个答案中提到的 @Roel_Spilker 。但这个回答被提问者接受了。为了避免将来造成混淆,我编辑了它以使用正确的方法。
您可以按照 the website 中所述在字段上使用 @Getter(AccessLevel.NONE) @Setter(AccessLevel.NONE)
。
披露:我是 Lombok 开发人员。