IntelliJ IDEA 抱怨 @NotNull 参数的 null 检查

2023-11-25

我想在我的项目中使用 Jetbrains @Nullable/@NotNull 注释。

screenshot

我有一个带有 @NotNull 字段的类。构造函数自然不接受null但会抛出异常。当然这个构造函数的参数也是用@NotNull 注解的。

为什么 IntelliJ IDEA 会抱怨空检查?文档指出:

禁止返回带有 NotNull 声明 null 值的元素(对于方法),传递给(参数)并保持(局部变量和字段)。

但我仍然必须在运行时检查空值,以防构建系统不理解注释并接受类似的语句new Car(null)。我错了吗?


如果您使用 JetBrains @NotNull 注释,运行时断言将添加到您编译的字节码中,以保证 null 不会传递到那里。那么在源代码中编写相同的检查确实没有意义。这种方法对我们来说非常有效。

如果您使用其他注释或只是不想检测字节码,您可以通过按 Alt+Enter 键“编辑检查设置”并选中“忽略断言语句”来禁用此特定警告。此类条件语句被 IDE 视为断言。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

IntelliJ IDEA 抱怨 @NotNull 参数的 null 检查 的相关文章

  • GSON 是一个 Java Throwable

    我有一个对象 其中包含一段数据和关联的异常 Public class MyBean Private String data Private Exception problem 当我尝试GSON toJSON 对象 它给了我一个循环引用抱怨
  • Java中printf左对齐

    当我运行该程序时 阶乘值右对齐 有没有办法让它左对齐 同时保持中间 50 个空格 public class Exercise 5 13 public static void main String args int numbers 1 2
  • 添加样式后如何重置回默认CSS?

    基本上 我通过添加如下样式类来更改 javafx 中文本字段的 css textfield getStyleClass add textfieldstyle 但后来我希望能够将其恢复到原来的样子 但由于本例中的原始外观是 JavaFX 的默
  • Spring Security“拒绝执行来自...的脚本”

    我正在 HTML 文件 thymeleaf 模板 中使用 Spring Security 和 Bootstrap 构建 Spring MVC 应用程序 Spring Security部分基于Spring Guide对于春季安全 http s
  • 从 Java 监听系统鼠标点击

    我的主要目的是计算特定应用程序上的鼠标点击次数 想象一下 我在 PC 上打开了 Microsoft Word 和 Web 浏览器 我的 Java 代码应该告诉我单击 Word 和 Web 浏览器的次数 我需要应用程序名称和点击次数 我怎样才
  • 将分区扩展到另一级

    根据下图来自春季批量文档 http docs spring io spring batch reference html scalability html partitioning 主步骤被划分为六个从步骤 它们是主步骤的相同副本 我的问题
  • TestNG 与 DataProvider 并行执行

    我有一个从数据提供者接收数据的测试 我希望此测试与数据提供者的不同值并行运行 我尝试了这样的方法 public class IndependentTest Test dataProvider dp1 threadPoolSize 3 inv
  • 如何抑制有关已弃用 api 的 javac 警告?

    当我编译时 javac 输出 Note Some input files use or override a deprecated API Note Recompile with Xlint deprecation for details
  • 尽管设置为 1.7,IntelliJ IDEA 13 仍使用 Java 1.5

    尽管在所有项目设置中指定了 JDK 1 7 包括File gt Project Structure gt Project Project SDK 则产生以下错误IntelliJ 13当尝试编译一些使用菱形运算符的简单 Java 7 代码时
  • 将一组 Java 对象转换为另一组对象的最佳方式是什么?

    这是一个真正的新手提出的基本 Java 问题 我有一组实现某个接口 接口 MyIfc 的Java对象 属于 MyClass 类 我有一组这些对象存储在我的类中的私有变量中 声明如下 protected Set
  • 将 LinkedHashset 内容复制到新的 ArrayList?

    我有一个最初包含一些内容的 listView 如果它得到相同的内容 我通过删除重复linkedhashset 现在 我想复制linkedhashset内容 即没有重复的内容到新的ArrayList 我尝试复制通过 p addAll 0 lh
  • 0x0A 和 0x0D 之间的区别

    我正在研究蓝牙 我试图编写代码以在连接时继续监听输入流 我遇到了以下代码片段 int data mmInStream read if data 0x0A else if data 0x0D buffer new byte arr byte
  • 如何在 Spring Boot 中跳过将某些 @Entity 类创建为 h2(内存中)数据库中的表?

    我正在尝试构建一个使用 2 个数据源的 Spring Boot 应用程序 我现在的主要数据库是内存数据库 仅用于测试目的 其中的表是在我创建的 sql 文件的帮助下填充的 另一个数据库 oracledb 具有已填充的表 我想实现什么目标 我
  • 序列化/反序列化 LinkedHashMap (android) java

    所以我想将 LinkedHashMap 传递给意图 SEND THE MAP Intent singlechannel new Intent getBaseContext singlechannel class singlechannel
  • IntelliJ & JRuby:如何设置项目?

    我已经下载了 IntelliJ 13 的试用版 并安装了适用于 Windows 的最新 JRuby 版本 我在网上进行了彻底搜索 但无法找到有关如何在 IntelliJ 中设置 JRuby 项目的任何指导 我选择了 IntelliJ 而不是
  • 什么触发了java垃圾收集器

    我对 Java 中垃圾收集的工作原理有点困惑 我知道当不再有对某个对象的实时引用时 该对象就有资格进行垃圾回收 但是如果它有对实时对象的引用怎么办 可以说我有一个节点集合 它们再次引用更多节点 List 1 gt Node a gt Nod
  • Java 中的引用变量里面有什么?

    我们知道对象引用变量保存表示访问对象的方式的位 它不保存对象本身 但保存诸如指针或地址之类的东西 我正在阅读 Head First Java 第 2 版 一书 书中写道 第 3 章第 54 页 在 Java 中我们并不真正知道什么是 在引用
  • 使用 Java 8 时间将时间从一个时区转换为另一时区

    我正在尝试将日期转换为GMT 5 30 to EST与java 8ZonedDateTime String inputDate 2015 04 30 13 00 DateTimeFormatter sourceFormatter DateT
  • Oracle 的商业 Hotspot JVM 相对于 OpenJDK 有哪些性能优势?

    正如这个问题中所描述的 OpenJDK 与 Java HotspotVM https stackoverflow com q 44335605 1593077 Oracle 的商业 Hotspot JVM 本质上是 OpenJDK 加上一些
  • 像 Java 一样覆盖 Objective-C 类中的方法

    我经常使用此语句来扩展类 而不需要编写整个单独的文件 假设 ClassFromFramework 是库中包含的框架的一部分的类 public ClassFromFramework public String myMethod operati

随机推荐

  • iTextSharp:PdfPCell 中使用哪些对齐属性?

    当我使用单元格对齐时 它可以工作 PdfPCell cell1 new PdfPCell new Phrase Text Font cell1 HorizontalAlignment 2 但一旦对齐不起作用 PdfPCell cell1 n
  • 在 C++ 中将彩色文本打印到控制台

    我想编写一个可以将彩色文本输出到控制台的 Console 类 所以我可以做类似的事情 基本上是 printf 的包装 Console Print This is a non coloured message n Console Warnin
  • 如何在按键而不是长按/点击时实现上下文菜单

    我有一个 ListActivity 我想为每个列表元素实现上下文菜单 我知道执行此操作的常见方法是在长按 点击时显示上下文菜单 我想知道是否有一种方法可以在按键 最好是菜单键 上显示每个元素的上下文菜单 要重新表述我的问题 如何通过按菜单键
  • 向命名空间下的命名路由助手添加前缀

    这就是公共命名空间的样子 namespace admin do resources posts end 它创建了一个像这样的命名路由 new admin post path 这是我的问题 如何将前缀 如本例中的 new 添加到命名空间下的命
  • 数百万个点使用哪种 GEO 实现

    我试图找出使用哪种 GEO 实现来根据某个点的长 纬度找到最近的点 我将有数百万甚至数十亿个不同的纬度 经度点需要比较 我一直在研究许多不同的实现来完成我需要完成的工作 我研究过 Postgis 看起来很流行并且性能良好 Neo4J 图形数
  • 如何获取Android设备中的相机传感器尺寸?

    谁能知道如何获取 Android 设备中相机的传感器尺寸 Thanks 从 API 级别 21 开始 这是可能的 来自文档 https developer android com reference android hardware cam
  • 使用 Python 中的 imaplib 在 Gmail 中创建草稿邮件

    我想编写一个 python 模块 将数据发送到 G 邮件帐户中的草稿消息 大约两周前我写了一个脚本 使用 imaplib 完美运行 我的模块的简化示例如下 我已经创建了一个测试电子邮件地址 供任何人测试此脚本 import imaplib
  • 列出我的计算机上的所有文件并按大小排序

    最近我遇到了一个问题 我的硬盘已经满得令人讨厌 但在检查了我的个人文件并删除 移动了所有超大的视频文件后 我仍然有相当少量的可用 ROM 因此 我让我的程序员大脑开始工作 决定不再亲自仔细检查每个文件夹和子文件夹 并使用 Windows 的
  • Eclipse Spring Boot - 在 HibernateJpaAutoConfiguration 和 CacheAutoConfiguration 之间检测到自动配置周期

    我正在使用在我的服务中注入一些其他项目 但是在集成它们时我面临以下异常 java lang IllegalStateException 在 org springframework boot autoconfigure orm jpa Hib
  • git-receive-pack:在 Windows 中找不到命令

    想知道如何在 Windows 中解决此问题 当我尝试使用命令 git push origin master 时 我得到 git receive pack 找不到命令 知道如何在 Windows 中解决这个问题吗 GIT 的路径位于 c pr
  • 使用map对列表元素求和

    我想知道是否可以使用映射来对列表的元素求和 assume a 1 2 3 4 list map sum a 会给出一个错误int object is not iterable因为列表需要可迭代 map sum a 是一个有效的语句 但给定对
  • 渲染不同组件警告时无法更新组件

    我在反应中收到此警告 index js 1 Warning Cannot update a component ConnectFunction while rendering a different component Register T
  • Golang - 扫描某类型的所有结构

    我是 Go 的初学者 我可能认为多年来使用其他语言过于传统 但这就是我想在 Go 中做的事情 假设以下用例 我有接口 I 该接口有函数 start 和 stop 有许多结构体实现该接口 结构体A 结构体B 结构体C 当应用程序启动时 我想在
  • 打印没有行索引和列索引的矩阵

    如果我打印一个矩阵 它会在控制台中显示行索引和列索引 例如 gt print diag 3 1 2 3 1 1 0 0 2 0 1 0 3 0 0 1 如何抑制列索引和行索引 IE 像这样的东西 gt print diag 3 indice
  • 无法获取 hasMany 关联

    我使用了提交eaa1123 余烬 和508479d ember data 构建 JS 文件 我从 Rails 后端返回了以下 JSON 它是使用以下命令生成的active model serializers 0 6 0 posts id 4
  • Django,从 Customer.objects.xxxx 中获取第一个和最后一个元素的最佳、最快方法是什么

    Django 从某些东西中仅获取第一个和最后一个元素的最佳 最快的方法是什么 Customer objects xxxx 这样的过滤器 value list 或 可能是最Pythonic的方式 myset Customer objects
  • 当线程在 Synchronized 块内崩溃时,锁会发生什么情况?

    假设 Thread 1 在对象上同步 synchronize object statement1 statement2 statement3 如果线程 1 在语句 2 上崩溃 对象上的锁会发生什么情况 发生这种情况时 JVM 会自动释放线程
  • 动态加载 css 文件以进行主题化

    我有三个具有不同颜色主题的 css 文件 例如 主题1 css 主题2 css 主题3 css 我想根据所选类别加载它们 是否可以在Angular2中动态加载CSS文件 处理这个问题的正确方法是什么 Thanks 我不确定这是否是正确的方法
  • WCF 服务返回意外响应:(413) 请求实体太大

    我使用 WCF 实现了一小组 REST 服务 其中一项服务接收大量数据 调用它时 这是从 Visual Studio 运行它时 我尚未将其部署到生产服务器 我收到错误 远程服务器返回错误 413 请求实体太大 我的网络配置
  • IntelliJ IDEA 抱怨 @NotNull 参数的 null 检查

    我想在我的项目中使用 Jetbrains Nullable NotNull 注释 我有一个带有 NotNull 字段的类 构造函数自然不接受null但会抛出异常 当然这个构造函数的参数也是用 NotNull 注解的 为什么 IntelliJ