java - 将可选成员变量标记为 NonNull

标签 java option-type lombok non-nullable

我的类的一个 String 成员变量是 Optional。用 Lombok 注释 @NonNull 标记它是否有意义?

如果成员变量是Map而不是String,我想问同样的问题。答案会改变吗?

最佳答案

Optional的要点是做fluent API。 Field 不是也不应该是 API 的一部分。

Optional<Object> obj 对您来说有什么区别?和 Object obj在田间?

这两个字段都可以用 @NotNull 注释. 用 @NotNull 注释字段将为您提供与注释 Optional 相同的结果但没有像ifPresent()这样的额外电话.如果你想使用 Optional将链接操作应用于字段 - 您正在使用 Optional以错误的方式。没有理由使用 Optional在领域。

您可以在 openjdk 邮件列表中阅读更多信息 optional discussion .

Having Optional enables to do fluent API mail.openjdk

关于java - 将可选成员变量标记为 NonNull,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44236295/

相关文章:

ios - 如何在 Swift 3 中解包一个模态类对象

java - 如何制作调用其他注解的注解

java - 声明了自定义 setter ,但 lombok 似乎没有发生任何事情

java - 有人将 Ant4Eclipse 与 Project Lombok 一起使用过吗?

java - 检查两个矩形是否重叠

java - 如何使用日历减去不同的时间单位

java - 仅使用 Java 6 或仅使用 WMIC 枚举 MAC 地址

java - 如何动态加载Spring Controller

Java 8 Optional 和 flatMap - 有什么问题吗?

swift - 隐式展开的可选枚举投诉