在Android' frameworks/base/services/core/java/com/android/server/policy/PhoneWindowManager.java
中有以下条款:
//if device type is tablet force enable NavigationBar and forbid NavigationBar move
String deviceType = SystemProperties.get("sys.device.type");
if (! "".equals(deviceType) && deviceType.equals("tablet")) {
mNavigationBarCanMove = false;
mHasNavigationBar = true;
}
! "".equals(deviceType) &&
完全是多余的,还是有意义呢?
答案 0 :(得分:2)
是的,在这种情况下它是多余的,因为第二个子句涉及第一个(如果deviceType
不为空),所以您可以简化以下操作:
//Use constant string to perform comparison to avoid possible NPE
if("tablet".equals(deviceType)) {}
答案 1 :(得分:1)
声明if (! "".equals(deviceType) && deviceType.equals("tablet"))
有几个原因:
"".equals(deviceType)
无价值。deviceType.equals("tablet")
是一种将String变量与常量进行比较的粗心方法。!
的使用可能会让软java程序员感到困惑(这有更高的预防性:!或&&amp ;?)。将语句替换为:
if ("tablet".equals(deviceType))
这样更好,因为当deviceType为null时,它不会抛出NullPointerException。
注意:建议使用TextUtils也是多余的。