首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >java嵌套If或single if

java嵌套If或single if
EN

Stack Overflow用户
提问于 2015-09-18 10:48:27
回答 2查看 986关注 0票数 15

我对以下代码块(示例)的执行有一个基本的疑问:

代码语言:javascript
复制
String version = computer.getSoundcard().getUSB().getVersion();

如果Soundcard不在那里,可能会抛出NullPointerException

所以我做到了,

选项1 :

代码语言:javascript
复制
if(computer!=null && 
        computer.getSoundCard() !=null && 
                 computer.getSoundCard().getUSB()!=null) {
   version = computer.getSoundcard().getUSB().getVersion();
}

选项2 :

代码语言:javascript
复制
if(computer !=null){
   SoundCard sc = computer.getSoundCard();
   if(sc!=null){
      USB usb = sc.getUSB();
      if(usb!=null){
         version = usb.getVersion();
      }
   }
}

根据我的理解,选项1会有额外的开销,因为它必须多次计算相同的表达式,比如computer.getSoundCard() 3次,computer.getSoundCard().getUSB() 2次。

我的理解正确吗?

EDIT 1:将选项2从

代码语言:javascript
复制
version = computer.getSoundcard().getUSB().getVersion();
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32643048

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档