【发布时间】:2013-02-16 19:38:00
【问题描述】:
以下三个功能哪个更高效;
public String getmConnectedDeviceName1() {
if(null != mServerDevice) {
return mServerDevice.getName();
}
else {
return null;
}
}
public String getmConnectedDeviceName2() {
return mServerDevice == null ? null : mServerDevice.getName();
}
public String getmConnectedDeviceName3() {
try{
return mServerDevice.getName();
}
catch(NullPointerException e) {
return null;
}
}
请以具体可接受的逻辑回复。
【问题讨论】:
-
没有可应用的逻辑。捕获异常来测试空值是完全错误的。
-
@Simon:问题不在于对错。这是关于效率的。仔细阅读问题。
-
好的。因此,正如所提供的答案所解释的那样,故意捕获异常是低效的。不管怎样,在几乎所有情况下,正确的练习都会压倒效率。在这种情况下,与大多数其他情况一样,正确的做法也是最有效的。
标签: java performance performance-testing