如何关闭 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 开发人员。