我的类的一个 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/