不使用局部变量的值

时间:2014-01-11 21:16:21

标签: java warnings

我有一个极端基本的代码,如下所示:

boolean[][] nodes = new boolean[sectionCountX][sectionCountZ];
        for(boolean[] n1 : nodes)
            for(boolean n2 : n1) // complain about unused variable
                n2 = true;

尽管事实上我将n2设置为真正的Eclipse给了我一个警告,告诉我n2从未使用过。

我知道我可以使用计数器循环,但我对此有所了解。

2 个答案:

答案 0 :(得分:2)

您正尝试使用增强的for循环初始化数组,但这不起作用。

你在这里做的是创建一堆局部变量并初始化它们,它们什么都不做,因此Eclipse发出了警告。

我建议改为使用Arrays.fill()

boolean[][] nodes = new boolean[sectionCountX][sectionCountZ];
for (boolean[] n1 : nodes) {
    Arrays.fill(n1, true);
}

答案 1 :(得分:0)

术语used用于评估。你永远不会评估n2。例如,你不做

System.out.println(n2);

它给你一个提示/警告因为n2基本没用,所以为什么甚至浪费资源来声明它并分配它?

如果您尝试将nodes数组中每个布尔值的值设置为true,那么您所做的工作将无法正常工作。