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

时间:2015-06-26 13:20:35

标签: java sonarqube

我写道:

public static final int MY_GREAT_COLOR = (91 << 16) + (155 << 8) + 213 + (255 << 32);

声纳说:

  

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

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

2 个答案:

答案 0 :(得分:2)

255 << 32溢出Java(32位)int,变为零。

您想要long255L << 32吗?

答案 1 :(得分:2)

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

SonarQube并不知道你的意图,但它有一个有效的观点,正如Toby所说。

至于可读性,你也可以尝试六进制代码(例如0xFF5B9BD5),已经使用了很多开发人员。当然,十进制数字将是完全不可读和丑陋的。