Java IntelliJ IDEA警告“;“价值永远不会被使用”;

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在赋值后不

我写了一个计算单词最大排列量的方法,但IntelliJ IDEA给了我一个警告:

从未使用分配给“置换量”的值长度-1

这个程序在两方面都很好,我想知道的是,为什么IntelliJ警告我永远不用“length-1”


屏幕截图:

您在返回语句中无故(警告的原因)重新分配到
置换金额


棘手的部分可能是,虽然看起来您在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);