我刚刚开始使用
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 ) { ... }
原文地址:https://www.jb51.cc/java/125437.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。