三元表达式中带有自动装箱的 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 的相关文章

  • 在 Java 中克隆对象 [3 个问题]

    这样做会调用Asub的clone方法吗 或者Asub深度克隆是否正确 如果没有的话 有没有办法通过这种方法对Asub进行深度克隆呢 abstract class Top extends TopMost protected Object cl
  • 在内存中使用 byte[] 创建 zip 文件。 Zip 文件总是损坏

    我创建的 zip 文件有问题 我正在使用 Java 7 我尝试从字节数组创建一个 zip 文件 其中包含两个或多个 Excel 文件 应用程序始终完成 没有任何异常 所以 我以为一切都好 当我尝试打开 zip 文件后 Windows 7 出
  • 如何循环遍历所有组合,例如48 选择 5 [重复]

    这个问题在这里已经有答案了 可能的重复 如何在java中从大小为n的集合中迭代生成k个元素子集 https stackoverflow com questions 4504974 how to iteratively generate k
  • 如何在 Spring 中禁用使用 @Component 注释创建 bean?

    我的项目中有一些用于重构逻辑的通用接口 它看起来大约是这样的 public interface RefactorAwareEntryPoint default boolean doRefactor if EventLogService wa
  • 如何更改javaFX中按钮的图像?

    我正在使用javaFX 我制作了一个按钮并为此设置了图像 代码是 Image playI new Image file c Users Farhad Desktop icons play2 jpg ImageView iv1 new Ima
  • 没有 Spring 的自定义 Prometheus 指标

    我需要为 Web 应用程序提供自定义指标 问题是我不能使用 Spring 但我必须使用 jax rs 端点 要求非常简单 想象一下 您有一个包含键值对的映射 其中键是指标名称 值是一个简单的整数 它是一个计数器 代码会是这样的 public
  • 在 junit 测试中获取 javax.lang.model.element.Element 类

    我想测试我的实用程序类 ElementUtils 但我不知道如何将类作为元素获取 在 AnnotationProcessors 中 我使用以下代码获取元素 Set
  • jdbc mysql loginTimeout 不起作用

    有人可以解释一下为什么下面的程序在 3 秒后超时 因为我将其设置为在 3 秒后超时 12秒 我特意关闭了mysql服务器来测试mysql服务器无法访问的这种场景 import java sql Connection import java
  • volatile、final 和synchronized 安全发布的区别

    给定一个带有变量 x 的 A 类 变量 x 在类构造函数中设置 A x 77 我们想将 x 发布到其他线程 考虑以下 3 种变量 x 线程安全 发布的情况 1 x is final 2 x is volatile 3 x 设定为同步块 sy
  • 当 OnFocusChangeListener 应用于包装的 EditText 时,TextInputLayout 没有动画

    不能比标题说得更清楚了 我有一个由文本输入布局包裹的 EditText 我试图在 EditText 失去焦点时触发一个事件 但是 一旦应用了事件侦听器 TextInputLayout 就不再对文本进行动画处理 它只是位于 editText
  • 如何对不同的参数类型使用相同的java方法?

    我的问题 我有 2 个已定义的记录 创建对象请求 更新对象请求 必须通过实用方法进行验证 由于这两个对象具有相同的字段 因此可以对这两种类型应用相同的验证方法 现在我只是使用两种方法进行重载 但它很冗长 public record Crea
  • logcat 中 mSecurityInputMethodService 为 null

    我写了一点android应显示智能手机当前位置 最后已知位置 的应用程序 尽管我复制了示例代码 并尝试了其他几种解决方案 但似乎每次都有相同的错误 我的应用程序由一个按钮组成 按下按钮应该log经度和纬度 但仅对数 mSecurityInp
  • 获取文件的总大小(以字节为单位)[重复]

    这个问题在这里已经有答案了 可能的重复 java 高效获取文件大小 https stackoverflow com questions 116574 java get file size efficiently 我有一个名为 filenam
  • 不接受任何内容也不返回任何内容的函数接口[重复]

    这个问题在这里已经有答案了 JDK中是否有一个标准的函数式接口 不接受也不返回任何内容 我找不到一个 像下面这样 FunctionalInterface interface Action void execute 可运行怎么样 Functi
  • 专门针对 JSP 的测试驱动开发

    在理解 TDD 到底是什么之前 我就已经开始编写测试驱动的代码了 在没有实现的情况下调用函数和类可以帮助我以更快 更有效的方式理解和构建我的应用程序 所以我非常习惯编写代码 gt 编译它 gt 看到它失败 gt 通过构建其实现来修复它的过程
  • Android:无法使用 DbHelper 和 Contract 类将数据插入 SQLite

    public class Main2Activity extends AppCompatActivity private EditText editText1 editText2 editText3 editText4 private Bu
  • 我如何在java中读取二进制数据文件

    因此 我正在为学校做一个项目 我需要读取二进制数据文件并使用它来生成角色的统计数据 例如力量和智慧 它的设置是让前 8 位组成一个统计数据 我想知道执行此操作的实际语法是什么 是不是就像读文本文件一样 这样 File file new Fi
  • 如何使用mockito模拟构建器

    我有一个建造者 class Builder private String name private String address public Builder setName String name this name name retur
  • 使用反射覆盖最终静态字段是否有限制?

    在我的一些单元测试中 我在最终静态字段上的反射中遇到了奇怪的行为 下面是说明我的问题的示例 我有一个基本的 Singleton 类 其中包含一个 Integer public class BasicHolder private static
  • Java中super关键字的范围和使用

    为什么无法使用 super 关键字访问父类变量 使用以下代码 输出为 feline cougar c c class Feline public String type f public Feline System out print fe

随机推荐

  • 使用 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