【发布时间】:2016-03-09 17:20:07
【问题描述】:
我刚开始在 Java 8 中使用 @NotNull 注释并得到了一些意想不到的结果。
我有这样的方法:
public List<Found> findStuff(@NotNull List<Searching> searchingList) {
... code here ...
}
我编写了一个 JUnit 测试,为参数 searchList 传递了空值。我期待会发生某种类型的错误,但它就像注释不存在一样。这是预期的行为吗?据我了解,这是为了让您跳过编写样板空检查代码。
非常感谢您解释 @NotNull 究竟应该做什么。
【问题讨论】:
-
@NotNull只是一个注释。注释本身没有任何作用。他们在编译时需要一个注解处理器,或者在运行时处理它的东西。 -
您是否在应用服务器中运行代码(例如使用Arquillian)?
-
@SotiriosDelimanolis - 那么重点是什么,只是警告任何调用该方法的人不要传递空值?在这种情况下,您仍然需要空指针验证代码。
-
查看休眠验证器
-
@jabu.10245 - 不使用任何应用服务器。
标签: java