gpt4 book ai didi

java - PMD UselessParentheses 违规

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:09:43 27 4
gpt4 key购买 nike

我有以下 Java 方法:

private int calculate() {
return (bytes[0] & 0xff) + ((bytes[1] & 0xff) << 8);
}

PMD 提示此代码违反“UselessParentheses”。

我已经查看了 operator precentence rules而且我仍然没有在该代码中看到多余的括号。我错过了什么吗?

最佳答案

这段代码中没有不必要的括号,你可以看到如果你运行这个:

        byte [] bytes = new byte[] {1,2};

System.out.println( (bytes[0] & 0xff) + ((bytes[1] & 0xff) << 8));
System.out.println( bytes[0] & 0xff + ((bytes[1] & 0xff) << 8));
System.out.println( (bytes[0] & 0xff) + (bytes[1] & 0xff) << 8);
System.out.println( (bytes[0] & 0xff) + (bytes[1] & 0xff << 8));

此外,有时添加额外的括号以提高可读性实际上是件好事。例如:

int i = x << y + z;   // this will shift x by y+z bits
int j = x << (y + z); // equivalent, but more readable

关于java - PMD UselessParentheses 违规,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34911230/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com