这是我的班级:
private class Node {
public int[] pivot;
public int pivotIndex;
}
我在Eclipse中得到警告,不使用pivotIndex,但是 这不是真的,稍后会在同一文件的代码中使用它。 这是Eclipse中的错误吗?
答案 0 :(得分:9)
您的变量在其他位置提及的事实并不意味着使用。为了证明:
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
都被标记为未使用,并且非常合理:程序永远不需要它们的价值。
答案 1 :(得分:2)
可以提及但不一定使用变量的另一个实例是在方法中的任何循环或if语句中。
public void method(){
int[] pivot;
int pivotIndex;
...
for(int i=0; i<pivot.length; i++){
pivotIndex=i;
}
}
在此示例中,pivot将被标记为已使用,因为此循环的条件将始终至少检查一次。但是,如果数组的长度是&lt; = 0,则不会执行循环,因此不会看到pivotIndex。
基本上,如果代码有可能不会进入提及变量的代码块,那么它将被标记为未读。 Eclipse的警告应该被视为任何拼写检查:如果你确定它是正确的并且它说你错了那么在算法中,检查这个特定的情况只是被忽视或没有实现。