【问题标题】:Java @Nonnull everything by default默认情况下,Java @Nonnull 一切
【发布时间】:2016-05-13 10:42:32
【问题描述】:

Java 允许标记参数并返回为@Nonnull

对我来说,这感觉是一种不好的做法,我不想在 99% 的用例中告诉它不应该为空,并用无用的噪音污染代码。

相反,我更愿意告诉它 - 给定包中的所有内容都不应为空,除非我明确将某些内容标记为 @CanBeNull

有可能吗?

【问题讨论】:

标签: java null optional


【解决方案1】:

据我所知,@Nonnull 用于 IDE 等工具,老实说,我倾向于不理会它。

我会说这在 Java 中是不可能的,尽管没有什么能阻止您提出自己的注释,此时它只会对您和您的团队有用,除非您更新工具(IDE 等)以理解你的注释。

如果您使用 Swift 或 Kotlin 之类的语言,默认情况下 val 类型不能为 null,如果您希望 val 类型除 null 之外,则添加 ?以表明它的值可能为空。

就我个人而言,我使用 JavaDoc 来解释什么时候我期望某些东西在输入时拒绝 null,以及什么时候它会返回 null。尽管在 Java 8 中,如果我希望一个方法返回 null,我将使用 Optional 来指示一个值可能会或可能不会返回。

【讨论】:

    猜你喜欢
    • 2012-02-29
    • 1970-01-01
    • 2021-06-08
    • 1970-01-01
    • 2010-12-02
    • 2012-11-24
    • 1970-01-01
    • 2018-04-11
    • 2015-03-26
    相关资源
    最近更新 更多