java - 我不明白为什么这个简单的语句不起作用

标签 java string null

所以我基本上完成了一个程序,最后我将字符串从一个数组打印到一个文件中。该数组可能包含空值,因此我在打印之前检查是否为空值,但我一直在文件末尾以 1 个空值结束...

这是我用来检查 null 的代码

for(int i=0;i<array2.length;i++)
{
    if(array2[i] != null)
        out.println(array2[i]);
}

我知道数组包含多个 null 实例,但只打印了 1 个。我尝试使用调试器,当array2[i] == null时,它仍然进入条件语句...

所以我添加了一个 println 语句来帮助我了解发生了什么。现在看起来像这样:

for(int i=0;i<array2.length;i++)
        {
            if(array2[i] != null)
            {
                System.out.println("Adding " + array2[i]);
                out.println(array2[i]);
            }

在将所有字符串值打印到控制台之后,它会打印“Adding null”,所以我知道它发生在这个 if 语句中。为什么会这样???

最佳答案

调试器并不总是清楚它是否进入了 if 条件。我不相信这段代码正在进入它可能出现的 if 条件,并且您的 null 可能来自另一行代码。

你可以这样写代码

for(ElementType e: array2.length)
    if(e != null)
        out.println("[" + e+ ']'); // extra text for debugging.
// I suspect your `null` will still be on a line of its own

关于java - 我不明白为什么这个简单的语句不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8534801/

相关文章:

java - 匿名类作为泛型参数

java - 无法在终端中运行 mvn 测试

string - 如何从字符串中解析一个 int?

c# - 在 C# 中,如何将 XmlNode 转换为带有缩进的字符串? (没有循环)

ruby - 使用换行符作为分隔符将多行字符串转换为 Ruby 中的数组

sql - boolean 类型的 OLEDB JET 和 NULL 值

ruby 数组检查 nil 数组

java - 使用 Java 的 Google 数据存储模拟器(不使用 GAE)

java - 我尝试使用 Set.remove(null) 从哈希集中删除 null。但它实际上并没有起作用。我在这里可能做错了什么?

java - 通过 3g 的 ftp 客户端