SonarQube Java Analyzer,规则S2183,我为什么要删除这个无用的班次?

Mar*_*ski 6 java sonarqube

我已经写了:

public static final int MY_GREAT_COLOR = (91 << 16) + (155 << 8) + 213 + (255 << 32);
Run Code Online (Sandbox Code Playgroud)

声纳说:

新:鱿鱼:S2183严重程度:严重,消息:删除这个无用的转移

谁能告诉我为什么?那只是文字不应该计算的事实,即使它增加了可读性吗?

Vla*_*sec 2

我猜 255 是你的 alpha 通道,在这种情况下我猜你想要255 << 24.

SonarQube 不知道你的意图,但正如 Toby 所说,它有道理。

至于可读性,您也可以尝试十六进制代码(例如0xFF5B9BD5),许多开发人员已经习惯了。当然,十进制数是完全不可读且难看的。