为什么在Eclipse中为已使用的变量获取“未使用的变量”警告?

时间:2013-01-18 14:32:16

标签: java eclipse

这是我的班级:

private class Node {
    public int[] pivot;
    public int pivotIndex;
}

我在Eclipse中得到警告,不使用pivotIndex,但是 这不是真的,稍后会在同一文件的代码中使用它。 这是Eclipse中的错误吗?

2 个答案:

答案 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;
  }
}

现在pivotpivotIndex都被标记为未使用,并且非常合理:程序永远不需要它们的价值。

答案 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的警告应该被视为任何拼写检查:如果你确定它是正确的并且它说你错了那么在算法中,检查这个特定的情况只是被忽视或没有实现。