首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使Java推断@NotNull为可选的返回类型

使Java推断@NotNull为可选的返回类型
EN

Stack Overflow用户
提问于 2018-08-16 21:20:20
回答 1查看 321关注 0票数 2

因为值仍然可以为null,所以在Java语言中使用Optional%s不能防止NPE

代码语言:javascript
复制
Optional<String> myMethod() {
    return null;
}

至少在运行时避免这种情况的一种方法是使用@NotNull注释。( Java在编译时是不可能的,因为它没有非空引用,而不是像Swift和Kotlin这样更复杂的语言)。

当检测到null时,使用@NotNull将立即崩溃,从而阻止null遍历整个程序,并使其更容易定位错误源。它最好与单元测试相结合,以使其对重构造成的破坏具有弹性。

据我所知,对Optional返回值和参数使用@NotNull总是有意义的。

现在问题来了:有没有可能让Java自动推断Optional返回值和参数的@NotNull?也就是说,我不需要为每个用途都编写它,而是通过设置一些构建设置或类似设置来实现这种行为?

EN

回答 1

Stack Overflow用户

发布于 2018-08-16 22:33:23

Optional并不设计为只保留非空值。它也可能包含空值。所以你的建议违背了可选方案的设计。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51878106

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档