0

我正在做一个简单的测试(尝试对一个值进行空检查),只是为了踢球,我决定对一个假装/不存在的值进行空检查:“striiing”,它在我的源代码中的任何地方都不存在。然后我检查了我的 logcat 并意识到这个不存在的值显示为:

04-18 04:40:22.197: D/com.game.demo.Level1(15800): Broken Value! Debug! Debug!

执行以下操作时:

 if ("striiing" != null) {
            Log.d(TAG, "Broken Value! Debug! Debug!");
 prefs.getBoolean("name", true);
 prefs.getBoolean("player", true);
 prefs.getBoolean("points", true);
 prefs.getBoolean("level", true);
 prefs.getBoolean("gear", true);

谁能解释为什么不存在的值可能/将显示为 NOT null?这很奇怪。

4

1 回答 1

0

"striiing"是一个字符串字面量,在 Java 中是一个非空对象。试试这个:

String s = null;
if (s == null) ...

它应该按预期工作。

于 2013-04-18T08:49:06.800 回答