Java 为什么我会在Eclipse中收到已使用变量的“未使用变量”警告?

Java 为什么我会在Eclipse中收到已使用变量的“未使用变量”警告?,java,eclipse,Java,Eclipse,这是我的班级: private class Node { public int[] pivot; public int pivotIndex; } 我在Eclipse中得到警告,pivotIndex未被使用,但 但事实并非如此,它稍后将在同一文件的代码中使用。 这是Eclipse中的一个bug吗?只是在其他地方提到了您的变量并不意味着它被使用了。证明: public class Test { public void x() { Node n = new Node()

这是我的班级:

private class Node {
    public int[] pivot;
    public int pivotIndex;
}
我在Eclipse中得到警告,pivotIndex未被使用,但 但事实并非如此,它稍后将在同一文件的代码中使用。
这是Eclipse中的一个bug吗?

只是在其他地方提到了您的变量并不意味着它被使用了。证明:

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将标记为已使用,因为此循环的条件将始终至少检查一次。然而,如果数组的长度被否决,因为应该使用它的代码没有显示出来,我非常怀疑这是Eclipse中的一个bug。如果你能展示一个完整的类来演示这个假定的bug,那会有所帮助。旁白:不要使用公共变量。我强烈怀疑您的代码中有一个微妙的错误,Eclipse实际上是非常正确的经验法则:编译器和IDE确实存在错误,但对于您怀疑的每一种情况,更可能是它是正确的,并且您有问题。一直以来,我都在想这个bug是否存在于编译器中,我认为只有3到4次它确实存在。还有1000次是我的错误。我估计你有一个同名的局部变量或参数,你只访问它,从不访问字段。