【发布时间】:2010-01-08 15:41:24
【问题描述】:
假设我有以下表达式
String myString = getStringFromSomeExternalSource();
if (myString != null && myString.trim().length() != 0) {
...
}
Eclipse 警告我 myString 在布尔表达式的第二个短语中可能为空。但是,我知道一些编译器会在第一个条件失败时完全退出布尔表达式。 Java 是这样吗?还是不保证评估顺序?
【问题讨论】:
-
您使用的是哪个编译器或工具?
-
好吧,javac(最常见的编译器)不会警告空值。如果“Java 警告我 myString 可能为空”,那很可能是一个有问题的工具。没有“java 警告”之类的东西。
-
这是有效的,@notnoop。我正在使用 Eclipse。我的语言很草率。
-
在 Eclipse 中,我只能用 || 重现警告操作或使用“myString == null”。你确定 Eclipse 警告过这个代码 sn-p 吗?
标签: java compiler-warnings boolean-logic boolean-expression