Using Optional
Java 中的 s 不能防止 NPE,因为值仍然可以null
:
Optional<String> myMethod() {
return null;
}
至少在运行时防止这种情况的一种方法是使用@NotNull
注释。 (在 Java 中编译时不可能,因为它没有非空引用,这与 Swift 和 Kotlin 等更复杂的语言不同)。
Using @NotNull
时会立即崩溃null
被检测到,从而防止null
遍历程序,更容易查明错误源。它最好与单元测试结合起来,以使其能够抵御因重构而造成的破坏。
据我所知,使用总是有意义的@NotNull
for Optional
返回值和参数。
现在问题是:
是否有可能让 Java 推断@NotNull
自动为Optional
返回值和参数? IE。我不必为每次使用都编写它,而是通过设置一些构建设置或类似的设置来实现这种行为?
可选并非旨在仅保留非空值。它也可能包含空值。所以你的建议是反对Optional的设计的。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)