java - 值始终为空
问题描述
我写的这段代码显然是正确的。问题是变量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将始终为空
解决方案
您Float temp = null;
在for
循环中声明。因此,它将始终设置为null
循环迭代开始的时间。即使您点击第二条语句,temp
也会获得一个值,但随后会立即被丢弃并使用 value 重新创建null
。
尝试Float temp = null
在循环之前声明。
推荐阅读
- c# - Asp.net core MVC 和 JQuery 提交
- c++ - Visual Studio 19 C/C++ 开发工具中的“__find_end”在哪里?
- javascript - 搜索在 mui-datatable、reactjs 中不起作用?
- javascript - 什么是更优雅的方法来调用包装器同时给它一个运行的函数
- excel - 将日期从 dd.mm.yyyy 格式转换为 dd-mmm-yyyy
- python-3.x - 如何在运行 import pypsark 时修复“TypeError: an integer is required (got type bytes)”错误
- javascript - 关于 id="imgClickAndChange" 和 onclick="copy_password().." 的问题
- c++ - 如何在类列表中获得参考?
- java - Java NIO FileChannel - 从 Android TUN 网络接口读取空
- node.js - 在全局节点包中获取文件路径作为参数