java - 如果两次评估语句是否短路?

标签 java if-statement

我有以下代码:

int num = (map.get(result.getNumber()) != null ? map.get(result.getNumber()) : 0);

我的问题是:

map.get 是否执行了两次(一次用于评估,一次用于放置)?

我的目标是将 get 语句减少为单个调用。

注意:result.getNumber 可以为空。

最佳答案

在 Java 8 中 getOrDefault方法被添加到 Map 接口(interface)。如果您不将 null 存储为映射中的值,则可以使用以下代码:

int num = map.getOrDefault(result.getNumber(), 0);

关于java - 如果两次评估语句是否短路?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32325659/

相关文章:

php - 如果值大于/小于 xyz

java - 如何制作过滤器以检测用户是否请求了未找到的页面?

java - Mongodb从数组中删除项目

ios - 单元格中有多个按钮,可将选定的按钮设置为单元格数据

if-statement - 如何在 OpenOffice 单元格中使用多个嵌套 IF 语句

java - 如何检查字符串中的字符是否与前一个字符相同?

if-statement - 批处理脚本输入问题

java - liferay 门户内部有哪些技术

java - 找不到符号方法drawImage(SlidingBlockModel, int, int, int, int, <nulltype>)

java.util.Calendar.setTime 处的 java.lang.NullPointerException