我想在我的项目中使用 Jetbrains @Nullable/@NotNull 注释。
我有一个带有 @NotNull 字段的类。构造函数自然不接受null
但会抛出异常。当然这个构造函数的参数也是用@NotNull 注解的。
为什么 IntelliJ IDEA 会抱怨空检查?文档指出:
禁止返回带有 NotNull 声明 null 值的元素(对于方法),传递给(参数)并保持(局部变量和字段)。
但我仍然必须在运行时检查空值,以防构建系统不理解注释并接受类似的语句new Car(null)
。我错了吗?
如果您使用 JetBrains @NotNull 注释,运行时断言将添加到您编译的字节码中,以保证 null 不会传递到那里。那么在源代码中编写相同的检查确实没有意义。这种方法对我们来说非常有效。
如果您使用其他注释或只是不想检测字节码,您可以通过按 Alt+Enter 键“编辑检查设置”并选中“忽略断言语句”来禁用此特定警告。此类条件语句被 IDE 视为断言。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)