while (someCondition) {
double myVar = someFunc(); // someFunc returns 41
if (myVar > 0) {
String precision ="##";
DecimalFormat df = new DecimalFormat("0."+precision);
// breakpoint set on next line
double myVarPercentage = Double.parseDouble(df.format((myVar/50)*100));
}
}
当我通过 eclipse 查看 myVar 的值时,它指出它无法解析为变量,尽管 someFunc(( 解析为 41。上面的片段在实例方法内的循环中执行,并且在名为"myVar"的范围内没有其他变量。
我必须在循环外声明双精度吗?
我假设你正在日食中调试。有时编译.class比.java源早,你会得到这样的效果。通常,编译后的代码将代码中的行号信息放在有点偏斜的地方,例如在多行 if 条件中。
在之前放置一个断点并执行单步执行。