加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 在方法参数中使用NotNull注释

发布时间:2020-12-14 16:25:08 所属栏目:Java 来源:网络整理
导读:我刚刚开始使用 Java 8的@NotNull注释,并获得一些意想不到的结果. 我有一个这样的方法: public ListFound findStuff(@NotNull ListSearching searchingList) { ... code here ...} 我写了一个JUnit测试,通过参数的searchList的null值.我期待发生某种类型的
我刚刚开始使用 Java 8的@NotNull注释,并获得一些意想不到的结果.

我有一个这样的方法:

public List<Found> findStuff(@NotNull List<Searching> searchingList) {
    ... code here ...
}

我写了一个JUnit测试,通过参数的searchList的null值.我期待发生某种类型的错误,但是它似乎就像注释不在那里一样.这是预期的行为吗?从我的理解,这是允许你跳过编写样板空检查代码.

对@NotNull应该做什么的解释将不胜感激.

解决方法

@Nullable和@NotNull自己不做任何事情.它们应该作为文档工具.

@Nullable注释提醒您在以下情况下需要引入NPE检查:

>可以返回null的调用方法.
>取消引用可以为null的变量(字段,局部变量,参数).

实际上,@NotNull注释是一个明确的合同,声明如下:

>一个方法不应该返回null.
>变量(像字段,局部变量和参数)不能保持空值.

例:

而不是写作:

/**
 * @param aX should not be null
 */
public void setX(
    final Object aX )
{
...
}

您可以使用

public void setX(
    @NotNull
    final Object aX )
{
...
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读