我写的这段代码显然是正确的。问题是变量 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 值始终为 null
最佳答案
您在 for
循环内声明 Float temp = null;
。因此,当循环迭代开始时,它将始终设置为 null
。即使您点击第二条语句,temp
也会获取一个值,但随后会立即被丢弃并使用值 null
重新创建。
尝试在循环之前声明Float temp = null
。
关于java - 值始终为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57575578/