我写道:
public static final int MY_GREAT_COLOR = (91 << 16) + (155 << 8) + 213 + (255 << 32);
声纳说:
新:鱿鱼:S2183严重程度:严重,消息:删除此无用的转移
有人可以告诉我为什么吗?那只是文字不应该计算的事实,即使它增加了可读性吗?
答案 0 :(得分:2)
255 << 32
溢出Java(32位)int
,变为零。
您想要long
和255L << 32
吗?
答案 1 :(得分:2)
我猜255是你的alpha通道,在这种情况下我猜你想要255 << 24
。
SonarQube并不知道你的意图,但它有一个有效的观点,正如Toby所说。
至于可读性,你也可以尝试六进制代码(例如0xFF5B9BD5
),已经使用了很多开发人员。当然,十进制数字将是完全不可读和丑陋的。