Lombok @NonNull不适用返回类型的检查

时间:2019-06-25 14:48:06

标签: intellij-idea lombok junit5

IDE:Intellij

我正在使用Lombok的NonNull注释自动生成Null指针检查并在方法参数和返回类型上引发异常。

在编写单元测试时,“ null”方法参数确实会引发异常,但是null返回类型不会引发异常。

Bid

以下测试失败:

import lombok.NonNull;
public @NonNull String function( @NonNull String input) {
    return null;
}

带有消息:

@Test
public void 
whenReturnTypeIsNull_ThenIllegalArgumentExceptionIsThrown(){
    assertThrows(IllegalArgumentException.class, ()-> testClass.function() );
}

1 个答案:

答案 0 :(得分:1)

Lombok项目 documentation明确指出,NonNull批注允许为构造函数和方法参数生成样板空检查:

  

您可以在方法或构造函数的参数上使用@NonNull,以使lombok为您生成空检查语句。

因此,您应该以编程方式检查返回值的不变量,包括非空值。