值始终为空

  • 本文关键字: java arraylist null
  • 更新时间 :
  • 英文 :


我写了这段代码,这显然是正确的。问题是变量temp始终为空。在第一个循环中,程序应该进入第二个语句,但这不会发生。为什么?

ArrayList<Pair<Float, Float>> tmp = new ArrayList<>();    
for (int i=0; (line = reader.readLine()) != null; i++) {
Float temp = null;
if (line.equals("----")) {
i = 0;
points.add(tmp);
tmp = new ArrayList<>();
} else if (i%2 == 0) {
temp = Float.parseFloat(line);
} else {
tmp.add(new Pair<Float, Float>(temp, Float.parseFloat(line)));
System.out.println("LINE: "+tmp.get(0).first);
}
}

PS:即使是IDE也说temp将始终为空

您在for循环中声明Float temp = null;。因此,它将始终设置为null循环的迭代开始时。即使您点击了第二条语句,temp也会得到一个值,但随后立即被丢弃并使用值null重新创建。

尝试在循环之前声明Float temp = null

值为temp 并不总是为空。如果您在解析 temp 后立即打印它的值,您将看到此值。

temp = Float.parseFloat(line);
System.out.println("temp: " + temp);

如果您打算在下一次迭代中使用一次迭代中的 temp 值,明智的做法是不要每次都将变量设置为 null。

相关内容

  • 没有找到相关文章

最新更新