2016-10-21 14 views
0

@NotNull工作我最近决定开始使用空校验注释(@NotNull),我用Intellij Idea's annotations library获得访问它们。我试图找出这些注释是否会在运行时工作,以检查是否值是空,如果是这样,它是如何处理这些错误(例如,它抛出一个NullPointerException,它只是返回默认值(例如NULL,0 ,false))。此外,如果这些注释不工作是有一组不同的,可能是更加规范的注释,将在运行时(例如javax)工作?如果这些不工作,我应该停止使用,并返回到标准零校验和(if(x == null)),还是应该使用这两种注释以及标准零校验?虽然我在这里是像@Nullable注释一个好主意?是否在运行时

+1

空注解的主要目的是帮助编译器或类似工具在编译时期间静态地检测空相关的问题。理想情况下,通过静态分析的空注释程序永远不会在运行时引发NPE。生成的运行时检查只是一个额外的安全网,而不是空注释的主要目的。 OTOH,如果使用注释替换必要的空检查,静态分析将不可避免地发出问题。 –

回答

1

是的,它会检查在运行时抛出IllegalArgumentExceptionnull。您可以在编译器设置中禁用/启用它。