这是我的课:
private class Node {
public int[] pivot;
public int pivotIndex;
}
我在 Eclipse 中收到未使用 pivotIndex 的警告,但事实并非如此,稍后会在同一文件的代码中使用它。这是 Eclipse 中的错误吗?
只是在其他地方提到了您的变量这一事实并不意味着它已被使用。展示:
public class Test {
public void x() {
Node n = new Node();
n.pivot = null;
n.pivotIndex = 0;
}
private class Node {
public int[] pivot;
public int pivotIndex;
}
}
现在两者pivot
和pivotIndex
都被标记为未使用,并且非常合理:程序永远不需要它们的值。
可以提及但不一定使用变量的另一个实例是在任何循环或方法中的 if 语句中。
public void method(){
int[] pivot;
int pivotIndex;
...
for(int i=0; i<pivot.length; i++){
pivotIndex=i;
}
}
在这个例子中,pivot 将被标记为已使用,因为这个循环的条件总是至少检查一次。但是,如果数组的长度 <= 0,则不会执行循环,因此不会看到 pivotIndex。
基本上,如果代码有可能不会进入提到变量的代码块,那么它将被标记为未读。Eclipse 的警告应该被视为任何拼写检查:如果您确定它是正确的并且它说您错了,那么在算法中,检查这种特殊情况被简单地忽略或实施毫无意义。