所以我基本上完成了一个程序,最后我将字符串从一个数组打印到一个文件中。该数组可能包含空值,因此我在打印之前检查是否为空值,但我一直在文件末尾以 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/