Java null检查对象

 多米音乐_34281398 发布于 2023-01-29 13:25

好吧,这是一个简单的问题,我没有任何问题,但我只是想确定.如果我做这样的事情,这是正确的吗?

if (person != null && person.getAge > 20) {...}

我可以这样做吗?在同一行上进行null检查和对象访问?它是否正确?或者我必须在null检查语句上做一个内部语句,如:

if (person != null)
{
    if (person.getAge() > 20) {...}
}

imo,第一个声明不会抛出NPE,但我需要专业人士的反馈......

一般来说,我的问题是,对于带有&&的if语句,如果第一个布尔值为false,JVM是否会停止执行if语句,否则它将全部检查?

1 个回答
  • 是.操作员&&||所谓的短路操作员.这意味着一旦知道答案,从左到右阅读,就不会评估条件中的其他语句.在您的情况下,一旦person != null部分评估false,整个条件将保证是假的,无论其他语句如何,因此person.getAge > 20不会被评估,也不会抛出异常.类似地,如果您使用||,并且第一部分评估为true,则不会评估第二部分,因为整体条件保证true在该点.

    2023-01-29 13:28 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有