Java IntelliJ IDEA警告“;“价值永远不会被使用”;
我写了一个计算单词最大排列量的方法,但IntelliJ IDEA给了我一个警告: 从未使用分配给“置换量”的值长度-1 这个程序在两方面都很好,我想知道的是,为什么IntelliJ警告我永远不用“length-1”Java IntelliJ IDEA警告“;“价值永远不会被使用”;,java,intellij-idea,int,warnings,helper,Java,Intellij Idea,Int,Warnings,Helper,我写了一个计算单词最大排列量的方法,但IntelliJ IDEA给了我一个警告: 从未使用分配给“置换量”的值长度-1 这个程序在两方面都很好,我想知道的是,为什么IntelliJ警告我永远不用“length-1” 屏幕截图:您在返回语句中无故(警告的原因)重新分配到置换金额 棘手的部分可能是,虽然看起来您在return语句中返回permutationAmount的值(因此将读取指定的值),但实际上并没有。return语句实际上返回赋值操作的结果,因此permutationAmount在赋值后不
屏幕截图:您在返回语句中无故(警告的原因)重新分配到
置换金额
棘手的部分可能是,虽然看起来您在return语句中返回permutationAmount
的值(因此将读取指定的值),但实际上并没有。return语句实际上返回赋值操作的结果,因此permutationAmount
在赋值后不会被再次读取。您无缘无故地将赋值返回到return语句中的permutationAmount
棘手的部分可能是,虽然看起来您在return语句中返回permutationAmount
的值(因此将读取指定的值),但实际上并没有。return语句实际上返回赋值操作的结果,因此permutationAmount
在赋值后不会被再次读取。这是因为您无缘无故更改了permutationAmount
的值。在返回后,您不会再次使用新值,因此在return
行中实际更改变量的值没有意义。您可以通过执行以下操作来完成相同的事情,而不是实际更改值
return permutationAmount / length - 1;
在第二个示例中,您在更改后使用新值,如果您没有实际更改该值,则返回的值将不正确。这是因为您无缘无故更改了置换量的值。在返回后,您不会再次使用新值,因此在return
行中实际更改变量的值没有意义。您可以通过执行以下操作来完成相同的事情,而不是实际更改值
return permutationAmount / length - 1;
在第二个示例中,您在更改后使用新值,如果您没有实际更改该值,则返回值将不正确。这是我在IntelliJ中展开此警告框时显示的文本:
该检查指出了变量值赋值后从未使用的情况,即:
- 赋值或赋值后,变量永远不会被读取
- 在下一个变量读取或删除之前,该值总是被另一个赋值覆盖
- 变量初始值设定项是冗余的(出于上述两个原因之一),或
- 该变量从未使用过
触发此警告似乎是因为第一个原因:分配变量后,您再也不会读取该变量。这没有多大意义,因为您会立即返回变量
然而,将一个值赋给局部变量然后立即返回它并没有多大意义。此行将执行相同的逻辑,而不分配给变量:
return permutationAmount / (length - 1);
这并不是说变量从未被使用过,因为我们假设此方法的调用方将读取此方法返回的值,但对变量的赋值是无用的。这是我在IntelliJ中展开此警告框时显示的文本:
该检查指出了变量值赋值后从未使用的情况,即:
- 赋值或赋值后,变量永远不会被读取
- 在下一个变量读取或删除之前,该值总是被另一个赋值覆盖
- 变量初始值设定项是冗余的(出于上述两个原因之一),或
- 该变量从未使用过
触发此警告似乎是因为第一个原因:分配变量后,您再也不会读取该变量。这没有多大意义,因为您会立即返回变量
然而,将一个值赋给局部变量然后立即返回它并没有多大意义。此行将执行相同的逻辑,而不分配给变量:
return permutationAmount / (length - 1);
这并不是说变量从未被使用过,因为我们假设这个方法的调用方将读取这个方法返回的值,但是对变量的赋值是无用的。你做了一个不必要的赋值,因为你从来没有在赋值后直接从被覆盖的变量中使用这个新值。你做了一个不必要的赋值,因为你从来没有在赋值后直接从被覆盖的变量中使用这个新值。真不敢相信我没有这样做看这个,谢谢!我想知道为什么IntelliJ没有给我这个补丁。真不敢相信我没有看到这个,谢谢!我想知道IntelliJ为什么不给我这个补丁。
return permutationAmount / (length - 1);