Java中布尔表达式求值顺序?

2024-02-22

假设我有以下表达式

String myString = getStringFromSomeExternalSource();
if (myString != null && myString.trim().length() != 0) {
...
}

Eclipse 警告我myString布尔表达式的第二个短语中可能为 null。但是,我知道如果第一个条件失败,某些编译器将完全退出布尔表达式。 Java 也是这样吗?或者评估顺序无法保证?


但是,我知道如果第一个条件失败,某些编译器将完全退出布尔表达式。 Java 也是这样吗?

是的,这就是所谓的短路评估 http://en.wikipedia.org/wiki/Short-circuit_evaluation.运营商喜欢&& and ||是执行此类操作的操作员。

或者评估顺序无法保证?

不,保证评估顺序(从左到右)

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

Java中布尔表达式求值顺序? 的相关文章

  • 按键时关闭 ModalWindow

    我希望能够在用户按下某个键 在我的例子中是 ESC 时关闭 ModalWindow 我有一个用于按键的 Javascript 侦听器 它调用取消按钮 ID 的单击事件 jQuery modalWindowInfo closeButtonId
  • 如何让 BlazeDS 忽略属性?

    我有一个 java 类 它有一个带有 getter 和 setter 的字段 以及第二对 getter 和 setter 它们以另一种方式访问 该字段 public class NullAbleId private static final
  • 日期语句之间的 JPQL SELECT [关闭]

    Closed 这个问题是无法重现或由拼写错误引起 help closed questions 目前不接受答案 我想将此 SQL 语句转换为等效的 JPQL SELECT FROM events WHERE events date BETWE
  • Spring应用中Eureka健康检查的问题

    我正在开发一个基于 Spring 的应用程序 其中包含多个微服务 我的一个微服务充当尤里卡服务器 到目前为止一切正常 在我所有其他微服务中 用 EnableEurekaClient 我想启用这样的健康检查 应用程序 yml eureka c
  • 在内存中使用 byte[] 创建 zip 文件。 Zip 文件总是损坏

    我创建的 zip 文件有问题 我正在使用 Java 7 我尝试从字节数组创建一个 zip 文件 其中包含两个或多个 Excel 文件 应用程序始终完成 没有任何异常 所以 我以为一切都好 当我尝试打开 zip 文件后 Windows 7 出
  • Java 枚举与创建位掩码和检查权限的混淆

    我想将此 c 权限模块移植到 java 但是当我无法将数值保存在数据库中然后将其转换为枚举表示形式时 我很困惑如何执行此操作 在 C 中 我创建一个如下所示的枚举 public enum ArticlePermission CanRead
  • 如何使用assertEquals 和 Epsilon 在 JUnit 中断言两个双精度数?

    不推荐使用双打的assertEquals 我发现应该使用带有Epsilon的形式 这是因为双打不可能100 严格 但无论如何我需要比较两个双打 预期结果和实际结果 但我不知道该怎么做 目前我的测试如下 Test public void te
  • 如何在java中将一个数组列表替换为另一个不同大小的数组列表

    我有两个大小不同的数组列表 如何从此替换 ArrayList
  • 如何在 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
  • 将流转换为 IntStream

    我有一种感觉 我在这里错过了一些东西 我发现自己做了以下事情 private static int getHighestValue Map
  • java.lang.IllegalStateException:提交响应后无法调用 sendRedirect()

    这两天我一直在尝试找出问题所在 我在这里读到我应该在代码中添加一个返回 我做到了 但我仍然得到 java lang IllegalStateException Cannot call sendRedirect after the respo
  • 尝试将 Web 服务部署到 TomEE 时出现“找不到...的 appInfo”

    我有一个非常简单的项目 用于培训目的 它是一个 RESTful Web 服务 我使用 js css 和 html 创建了一个客户端 我正在尝试将该服务部署到 TomEE 这是我尝试部署时遇到的错误 我在这里做错了什么 刚刚遇到这个问题 我曾
  • 使用 AsyncTask 传递值

    我一直在努力解决这个问题 但我已经到了不知道该怎么办的地步 我想做的是使用一个类下载文件并将其解析为字符串 然后将该字符串发送到另一个类来解析 JSON 内容 所有部件都可以单独工作 并且我已经单独测试了所有部件 我只是不知道如何将值发送到
  • 关键字“table”附近的语法不正确,无法提取结果集

    我使用 SQL Server 创建了一个项目 其中包含以下文件 UserDAO java public class UserDAO private static SessionFactory sessionFactory static se
  • 专门针对 JSP 的测试驱动开发

    在理解 TDD 到底是什么之前 我就已经开始编写测试驱动的代码了 在没有实现的情况下调用函数和类可以帮助我以更快 更有效的方式理解和构建我的应用程序 所以我非常习惯编写代码 gt 编译它 gt 看到它失败 gt 通过构建其实现来修复它的过程
  • Cucumber 0.4.3 (cuke4duke) 与 java + maven gem 问题

    我最近开始为 Cucumber 安装一个示例项目 并尝试使用 maven java 运行它 我遵循了这个指南 http www goodercode com wp using cucumber tests with maven and ja
  • 我如何在java中读取二进制数据文件

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

    我正在使用命令行编译使用 eclipse 编写的项目 如下所示 javac file java 然后运行 java file args here 我将如何运行干净的构建或编译 每当我重新编译时 除非删除所有内容 否则更改不会受到影响 cla
  • 使用 CXF-RS 组件时,为什么我们使用 而不是普通的

    作为后续这个问题 https stackoverflow com questions 20598199 对于如何正确使用CXF RS组件我还是有点困惑 我很困惑为什么我们需要

随机推荐

  • = 0) ruby​​'' aria-label='找不到 gem 'sqlite3 (>= 0) ruby​​''> 找不到 gem 'sqlite3 (>= 0) ruby​​'

    我正在学习 Ruby on Rails 并从 Ryan Bigg 的博客和 Agile Wed Development 书中了解了 RVM 和 Rails 的安装 这之前在我家里的电脑上是有效的 但在工作中它给了我错误 depot rail
  • 完全重新安装 Xcode 9

    我是在我的 2016 款 15 英寸 MacBook Pro 安装并更新了 macOS 10 12 6 和 Xcode 9 1 上撰写的 从 9 0 开始 我在 Xcode 中遇到了非常奇怪的行为 而在 v8 x 中我没有遇到过这种情况 我
  • 从单元格内检索多种字体数据

    谷歌工作表中的单元格可以沿着存储在其中的字符串具有多种字体颜色 或其他富文本属性 也可以通过属性使用 API 来完成TextFormatRun as 在这里解释 https stackoverflow com questions 49287
  • 使用 qsub 提交连续且独立的作业的速度有多快?

    这个问题与pbs 作业忙时无输出 https stackoverflow com questions 13804373 pbs job no output when busy 即 当 PBS Torque 处于 忙 状态时 我提交的一些作业
  • 使用 Carbon 增加日期

    我正在尝试为 Laravel 4 中的预订系统创建一组限制日期 我的数据库中有一个测试行 其 start date 为 2016 01 24 end date 为 2016 01 29 这是提取行并使用 Carbon 循环遍历日期的代码 以
  • 如何更改pandas中多列的数据类型

    我正在尝试在 pandas 数据帧上运行随机森林 我知道数据框中没有空值或无穷大 但当我拟合模型时不断收到 ValueError 大概这是因为我有 flaot64 列而不是 float32 我还有很多 bool 和 int 类型的列 有没有
  • 将 len 与 get() 函数一起使用会给出错误的统计信息?

    我有一些代码要求用户输入 26 个字符来制作自己的加密代码 如果它是 26 个字符长并且不是字母表或预设encryption code 代码将改变encryption code无论他们输入什么 import tkinter from tki
  • 计算Python程序中的递归! [复制]

    这个问题在这里已经有答案了 我需要计算python程序中递归的次数 所以基本上我需要一个静态变量之类的东西 比如在 C 中 它可以计算函数被调用的次数 只需通过递归传递一个计数器 def recur n count 0 if n 0 ret
  • 为什么 Python 中 1 == True 而 2 != True ? [复制]

    这个问题在这里已经有答案了 可能的重复 Python 中的 False 0 和 True 1 是实现细节还是由语言保证 https stackoverflow com questions 2764017 is false 0 and tru
  • Excel VBA:IF ComboBox.Value 语句

    您好 我有这个组合框 如果组合框值显示例如巴黎 我想执行一些命令 Private Sub Workbook open With Sheet1 ComboBox1 AddItem Paris AddItem New York AddItem
  • javascript 函数的变量作用域问题

    我正在尝试使用 spin js 创建一个函数 该函数加载微调器 然后如果使用它的参数再次调用它 则会停止微调器 我无法获得正确的变量范围 因此 当我调用该函数来停止时 我得到一个未定义的信息submitSpinner http jsfidd
  • 使用 Excel VBA 对后续电子邮件进行计数

    我正在使用 Office 2013 我试图获取我的一个电子邮件文件夹中的后续项目的计数 并且该值将被写入单元格中 因此 我在添加 Outlook 对象库引用后使用以下代码 Dim Folder As Outlook MAPIFolder D
  • 在 Windows 构建服务器上使用 Internet Explorer 驱动程序截取屏幕截图时出现黑屏

    我正在我们的构建服务器上使用 selenium 运行几个自动浏览器测试 运行 Chrome 或 Firefox 驱动程序时截取屏幕截图没有问题 但运行 Internet Explorer 驱动程序时 我只是遇到黑屏 虚拟机 硒版本 2 53
  • 在 flutter 应用程序中,目标 S+(版本 31 及更高版本)要求在创建 PendingIntent 时指定 FLAG_IMMUTABLE 或 FLAG_MUTABLE 之一

    Please help me to sort out the problem I give a link to the git https github com Vasajj radio tysa fm git https github c
  • 如何在 Bokeh 中添加文本注释?

    我正在寻找 Matplotlib 类型1 http matplotlib org 1 4 0 users annotations intro htmlBokeh 中的文本注释 但我在他们的用户指南中找不到它2 http bokeh pyda
  • 分析 DNA 序列中的串联重复基序

    嘿 伙计们 由于我是编码世界和 Python 的新手 因此我没有太多编码经验 因此我们将不胜感激 我正在处理 DNA 序列中的短串联重复 我希望有一个代码可以根据指定位点的串联基序读取和计算重复的核苷酸 这是我需要的一个例子 串联图案 AG
  • 如何在 Streamlit 中设置按钮样式

    我的应用程序中有一个按钮 我想在用户单击它时对其进行样式设置 问题是 因为 Streamlit 不允许我们向我们创建的对象发出类 所以我需要找到一种方法来以稳健且与版本无关的方式指定确切的按钮 这是按钮在 Streamlit 中的样子 di
  • 如何使用 vscode 终端打开文件?

    我想打开一个新选项卡并使用打开一个文件vscode终端 like open somefile js命令 所以我可以使用ls并快速打开文件 Use code r
  • Flask 不提供图片

    我创建了一个小型 Flask 应用程序 用于处理和呈现本地计算机上本地使用的数据 我的 Flask 应用程序处理子文件夹中的数据 然后打开网页来显示处理后的数据 除了没有提供图像之外 一切看起来都很棒 例如 生成的 HTMl 源将具有以下内
  • Java中布尔表达式求值顺序?

    假设我有以下表达式 String myString getStringFromSomeExternalSource if myString null myString trim length 0 Eclipse 警告我myString布尔表