三元表达式中带有自动装箱的 NullPointerException

2024-03-06

运行以下 Java 代码:

boolean b = false;
Double d1 = 0d;
Double d2 = null;
Double d = b ? d1.doubleValue() : d2;

为什么会出现空指针异常?


条件表达式的返回类型b ? d1.doubleValue : d2 is double。条件表达式必须具有单一返回类型。遵循二进制数字提升的规则,d2自动拆箱为double,这会导致NullPointerException when d2 == null.

根据语言规范第 §15.25 节:

否则,如果第二个和第三个 操作数的类型是 可转换(第 5.1.8 节)为数字类型, 那么有几种情况:...

否则,应用二进制数字提升(第 5.6.2 节) 操作数类型和类型 条件表达式是 第二种和第三种提升型 操作数。请注意,二进制数字 促销执行拆箱转化 (§5.1.8) 和值集转换 (第 5.1.13 节)。

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

三元表达式中带有自动装箱的 NullPointerException 的相关文章

  • 如何将未知列数的 ResultSet 映射到 List 并将其显示在 HTML 表中?

    我使用 Netbeans GlassFish 和 JavaDB 创建了一个数据库应用程序 现在我的控制器 Servlet 代码执行一些动态 SQL 查询并返回结果集 或者我可以更改 toString 现在 如何以表格格式显示返回的结果集 我
  • 使用 Guice 注入类集合

    我正在尝试用 Google Guice 2 0 注入东西 我有以下结构 FooAction implements Action BarAction implements Action 然后我有一个带有以下构造函数的 ActionLibrar
  • 如何将变量的全部内容发送/导出到文本文件/xml 文件/剪贴板?

    我想将实例的内容 最好以树形形式 发送给某人 打印屏幕是不行的 因为类太复杂了 您需要将输出转回实例吗 在这种情况下 其他答案都是正确的 如果您只想手动检查实例的内容 理想情况下您的类都将实现toString 你可以将其重定向到一个文件 如
  • 如何从 Play WSClient 的字符串创建 WSResponse 对象

    文档 https www playframework com documentation 2 4 x JavaTestingWebServiceClients Mock the web service建议使用模拟Web服务测试基于WSCli
  • 具有 CRUD 功能的基于 Spring Web 的管理工具

    在 PHP Symfony 世界里有一个工具叫 Sonata Adminhttps sonata project org https sonata project org 基于 AdminLTE 模板 这是一款一体化管理工具 具有登录 菜单
  • 在 Junit 测试中使用 ReflectionTestUtils.setField()

    我是 JUnittesting 的新手 所以我有一个问题 谁能告诉我为什么我们使用ReflectionTestUtils setField 在我们的 Junit 测试示例中 正如评论中提到的 java 文档很好地解释了用法 但我还想给你们举
  • maven 无法下载 jacoco 0.7.10-SNAPSHOT jar

    我对此感到困惑 我的 pom xml 中有这个
  • LocalDate 减去 period 得到错误的结果

    LocalDate减去一个Period 如 28年1个月27天 得到错误的结果 但减去一个Period 只有天单位 如 10282 天 得到正确的结果 有什么需要注意的吗 public static void main String arg
  • 更改 JComboBox 中滚动条的大小

    有谁知道如何手动更改 jComboBox 中的滚动条大小 我已经尝试了一大堆东西 但没有任何效果 好吧 我明白了 您可以实现 PopUpMenuListener 并使用它 public void popupMenuWillBecomeVis
  • Android 解析 JSON 卡在 get 任务上

    我正在尝试解析一些 JSON 数据 我的代码工作了一段时间 我不确定我改变了什么突然破坏了代码 当我运行代码时 我没有收到任何运行时错误或警告 我创建一个新的 AsyncTask 并执行它 当我打电话时 get 在这个新任务中 调试器在此行
  • 在循环中按名称访问变量

    我正在开发一个 Android 项目 并且有很多可绘制对象 这些绘图的名称都类似于icon 0 png icon 1 png icon 100 png 我想将这些可绘制对象的所有资源 ID 添加到整数 ArrayList 中 对于那些不了解
  • Java和手动执行finalize

    如果我打电话finalize 在我的程序代码中的一个对象上 JVM当垃圾收集器处理这个对象时仍然再次运行该方法吗 这是一个大概的例子 MyObject m new MyObject m finalize m null System gc 是
  • Android项目中使用java获取电脑的IP地址

    我在用ksoap2 android http code google com p ksoap2 android 我需要使用java获取IP地址 这样我就不必每次都手动输入它 我所说的 IP 地址是指 例如 如果我这样做ipconfig使用命
  • Java String ReplaceAll 方法给出非法重复错误?

    我有一个字符串 当我尝试运行时replaceAll方法 我收到这个奇怪的错误 String str something op str str replaceAll o n it works fine str str replaceAll n
  • 如何将库添加到 LIBGDX 项目的依赖项 gradle

    一切都在问题中 我已经尝试了在 SO 和其他网站中找到的所有答案 但没有运气 这就是我迄今为止尝试过的 adding compile fileTree dir lib include jar 到我的 build gradle adding
  • CXF:通过 SOAP 发送对象时如何排除某些属性?

    我使用 Apache CXF 2 4 2 当我将数据库中的某个对象返回给用户时 我想排除一些属性 例如密码 我怎样才能做到这一点无需创建临时的班级 有这方面的注释吗 根据 tomasz nurkiewicz 评论我应该使用 XmlTrans
  • 如何清理 Runtime.exec() 中使用的用户输入?

    我需要通过命令行调用自定义脚本 这些脚本需要很少的参数并在 Linux 机器上调用 当前版本容易出现各种shell注入 如何清理用户给出的参数 参数包括登录名和路径 Unix 或 Windows 路径 用户应该能够输入任何可能的路径 该路径
  • 为什么我不能将 Collection 转换为 Collection>

    问题的关键是 为什么这会导致编译时错误 List
  • 你能快速告诉我这个伪代码是否有意义吗?

    我相信我的代码现在是万无一失的 我现在将写出伪代码 但我确实有一个问题 为什么 DRJava 要求我返回 if 语句之外的内容 正如你所看到的 我为 ex 写了 return 1 只是因为它问了 但是它永远不会返回该值 谁可以给我解释一下这
  • 使用 AmazonSNSClient 发送短信时的授权

    aws 官方文档如何发送短信 http docs aws amazon com sns latest dg sms publish to phone html使用 java 中的 aws SDK 非常简单 但是 当发送如底部示例所示的消息时

随机推荐

  • 使用 ADODB 记录集在 Excel VBA 中查询非常慢的查询以获得先前值

    我在 Access 中有这个查询 它的工作速度非常快并且具有出色的性能 但是 当我想使用 ADODB REORDSET 在 Excel 中使用此查询时 通过复制记录集信息大约需要 15 分钟Range CopyFromRecordset S
  • 使用 NewSequentialID 有什么缺点吗?

    正如问题所述 使用 NewSequentialID 作为表的默认值与 NewID 相比有何缺点 明显的优点是它不会使我们的索引碎片太多 是否担心序列会被最大化 我不认为字段上的默认值真的会成为一个缺点 如果您想在插入某些记录之前控制它们的
  • 如何正确验证 AngularJS 客户端到服务器的身份

    我正在构建一个使用 RESTful API Jersey 的 AngularJS Web 应用程序 在服务器端 我使用 Java 应用程序服务器 具体为 Glassfish 4 我的设置如下 AngularJS webapp 作为单个 wa
  • Xamarin iOS 内存泄漏无处不在

    过去 8 个月我们一直在使用 Xamarin iOS 并开发了一款具有许多屏幕 功能和嵌套控件的不平凡的企业应用程序 我们已经按照 推荐 完成了自己的 MVVM 架构 跨平台 BLL 和 DAL 我们在 Android 之间共享代码 甚至我
  • 我应该使用 while(true) 从 Socket 接收数据吗?

    请参考我之前的问题获取代码示例套接字 有时 很少 数据包在接收过程中丢失 https stackoverflow com questions 9826194 sockets sometimes rarely packets are lost
  • 如何使用 x'abc' 二进制字符串文字语法显示 blob 值?

    您可以使用 x abc 语法轻松输入 blob 值 但是是否也可以以这种方式显示它 如下所示 直接选择或使用连接隐式转换为字符串不起作用 并且显示垃圾 此处为 Windows DOS 提示符 sqlite gt create table b
  • 多重使用块c#

    我正在开发需要访问数据库的应用程序 使用 using 语句很好 因为 using statement is to ensure that the object is always disposed correctly and it does
  • 我想删除所有花芹菜历史/日志,但它不起作用

    我不知道如何删除花的任务相关数据 我需要清除我的 Flower 数据以进行调试 但我不知道该怎么做 我的花和芹菜在泊坞窗上运行 即使我删除了泊坞窗及其相应的卷 我的花和芹菜历史数据中仍然有数据 我的 docker compose 配置 ce
  • 是否可以使用JS检查哪个浏览器支持哪个视频/音频“编解码器”?

    更准确地说 我想检查可以在浏览器中对 HTML5 中的视频 音频元素使用哪些编解码器 例如 Safari 支持 H 264 但我也想知道我可以使用哪些编解码器 由于规范随着时间的推移而变化 我想以某种方式自动完成它 而不是基于浏览器编解码器
  • Python 计算列表长度的方法

    我想知道 len 是如何工作的 每次我调用 len 时 它是否从列表的开头到结尾进行计数 或者 由于 list 也是一个类 len 是否只返回列表对象中记录列表长度的变量 另外 我希望有人能告诉我在哪里可以找到 len map 等内置函数的
  • 查找向量矩阵的最频繁行或众数 - Python / NumPy

    我有一个形状 n 的 numpy 数组 表示 n 维向量的向量 我想找到最频繁的行 到目前为止 最好的方法似乎是迭代所有条目并存储计数 但 numpy 或 scipy 没有内置的东西来执行此任务 这似乎很淫秽 这是一种使用的方法NumPy
  • 我的应用程序启动颠倒

    我已经开发了一段时间并发布了游戏的引擎现在正在颠倒地启动我当前的项目 并立即按预期的方式旋转 UIView 我用代码创建了界面 它的外观如下 BOOL application UIApplication application didFin
  • 按类别列出项目

    我有3张桌子 类别doesnt matter 项目2猫 itemID catID item id name desc 我想列出给定类别中的项目 但我不知道如何以简单的方式做到这一点 使用 PHP 和 MySQL 我需要这个表结构 因为我想要
  • CSS 属性选择器在 href 中不起作用

    我需要使用 css 中的属性选择器来更改不同颜色和图像上的链接 但它不起作用 我有这个html a href manual pdf A PDF File a 还有这个CSS a display block height 25px paddi
  • 多个产品的证书和配置文件组织

    在我的工作场所 我们已经完成了一个 iOS 应用程序的开发 即将开始第二个应用程序的开发 在此之前 我想澄清一些有关证书和配置文件以及构建环境的事情 问题 1 我认为一个 Apple 帐户只能有一个分发证书 因此这将在两个应用程序中使用 这
  • SendKey.Send() 不起作用

    我正在使用 WPF 并导入了 System Windows Form 引用 这是我的代码 Process process Process GetProcessesByName wmplayer SetForegroundWindow pro
  • 如何使用 libpqxx 中的 pqxx::stateless_cursor 类?

    我正在学习 libpqxx PostgreSQL 的 C API 我想使用 pqxx stateless cursor 类 但是 1 我发现 Doxygen 输出在这种情况下没有帮助 2 pqxx org 网站已经关闭一段时间了 有人知道如
  • Python 4维球体上点的均匀分布

    我需要 4 维球体上均匀分布的点 我知道这并不像选择 3 个角度并使用极坐标那么简单 在 3 维中我使用 from random import random u random costheta 2 u 1 for distribution
  • 如何使用编译器 API 将 Typescript 转换为 Typescript?

    我想构建一个工具来对打字稿代码执行转换 并将它们作为打字稿 而不是 JavaScript 发出 作为现有代码库一次性升级路径的一部分 这可能吗 如果可能的话 如何实现 我没有找到关于编译器 API 的全面且清晰的参考资料 任何指向参考或实际
  • 三元表达式中带有自动装箱的 NullPointerException

    运行以下 Java 代码 boolean b false Double d1 0d Double d2 null Double d b d1 doubleValue d2 为什么会出现空指针异常 条件表达式的返回类型b d1 doubleV