intellij-idea - Lombok @NonNull 不适用检查返回类型
问题描述
IDE:Intellij
我正在使用 Lombok 的 NonNull 注释来自动生成 Null 指针检查并在方法参数和返回类型上抛出异常。
在编写单元测试时,“null”方法参数确实会引发异常,但 null 返回类型不会引发异常。
import lombok.NonNull;
public @NonNull String function( @NonNull String input) {
return null;
}
以下测试失败:
@Test
public void
whenReturnTypeIsNull_ThenIllegalArgumentExceptionIsThrown(){
assertThrows(IllegalArgumentException.class, ()-> testClass.function() );
}
随着消息:
Expected java.lang.IllegalArgumentException to be thrown, but nothing was thrown
解决方案
Lombok 项目 文档明确指出,注释NonNull
允许为构造函数和方法参数生成样板空检查:
您可以在方法或构造函数的参数上使用 @NonNull 让 lombok 为您生成一个空检查语句。
因此,您应该以编程方式检查您的返回值不变量,包括非空值。
推荐阅读
- javascript - 当客户端没有从 API 获取数据时返回一个组件?
- android - 如何修复此错误“正在运行 Gradle 任务'assembleDebug'”一直在运行且未结束
- flutter - 没有为“screenutil”颤振定义方法 getInstance()
- python - 从 ipyvuetify 中获取值选择
- python - 命令引发异常:AttributeError: 'Context' object has no attribute 'id' discord.py
- c++ - 为什么在将负整数与无符号整数进行比较时,c++ assert() 会错误地调用 abort()?
- reactjs - WaterMelonDB:如何使用表参数过滤模型?
- java - 从数据库中的字节生成word文档
- flutter - 如何在颤振中将米转换为英里?
- mongodb - 删除数组元素问题