在Java中自动捕获= +而不是+ =的使用

Stu*_*son 2 java operators compound-operator

我有这种可怕的习惯,键入下面的内容,直到测试时才抓住它:

int i = 1;
int j = 2;
i =+ j;  //i equals 2, not 3 as intended; assign only, + is unary and works on the j
Run Code Online (Sandbox Code Playgroud)

当然,正确的版本是

int i = 1;
int j = 2;
i += j;  //i equals 3, as intended with additive & assignment compound operator
Run Code Online (Sandbox Code Playgroud)

我犯了这么多错误.我不会感到惊讶的是,有一些代码在其中有一个错误,它逃脱了测试用例.必须有办法系统地防止这种情况.有任何想法吗?

Joa*_*uer 10

定期使用PMD和/或Checkstyle等工具.理想情况下,作为构建过程/持续集成的一部分.

您可能必须为此定义自定义规则,因为我不知道默认情况下是否有任何这些工具将此识别为问题.

这不仅会解决这个问题,还会暗示很多其他潜在的问题.


Mat*_*ges 10

根据您使用的IDE,如果它进行语法突出显示,我会修改突出显示,以便它查找模式=+并使其看起来很难看.