gpt4 book ai didi

java - "Change this condition so that it does not always evaluate to false"-SonarQube

转载 作者:行者123 更新时间:2023-11-29 07:27:30 49 4
gpt4 key购买 nike

我有下面的代码,我得到了一个 SonarQube

Change this condition so that it does not always evaluate to false

这行代码 if(hashCodeVariable == null && equalsVariable.equals(EQUALS_METHOD)) { 是给我 sonarqube 错误的代码。

@Override
public void visitNode(Tree tree) {
MethodTree mt = null;
ClassTree classTree = (ClassTree) tree;
if (!hasSemantic()) {
return;
}
for (Tree memberTree : classTree.members()) {
if (memberTree.kind().name().equals(Kind.METHOD.name())) {
mt = (MethodTree) memberTree;
methods.add(mt);
}
}
storeMethodValue(mt);
}

public void storeMethodValue(MethodTree mt) {
String methodName;
try {
for (MethodTree method : methods) {
methodName = PUBLIC + SPACE + method.returnType().symbolType().name()
+ SPACE + method.symbol().name();
checkMethodName(methodName);
}
if(hashCodeVariable.equals(HASH_CODE_METHOD) && equalsVariable == null) {
reportIssue(mt, "in");
return;
}

if(hashCodeVariable == null && equalsVariable.equals(EQUALS_METHOD)) {
reportIssue(mt, "out");
return;
}
}
catch (NullPointerException nullPointer) {
throw nullPointer;
}
}

public void checkMethodName(String methodName) {
if (methodName.equals(EQUALS_METHOD)) {
equalsVariable = methodName;
} else if (methodName.equals(HASH_CODE_METHOD)) {
hashCodeVariable = methodName;
}
}

对于那些熟悉使用Tree 的人,我的代码还好吗?我应该做哪些改变?

最佳答案

hashCodeVariable 的 null 测试毫无意义,因为在第一种情况下使用了 .equals。

 if(hashCodeVariable.equals(HASH_CODE_METHOD) && equalsVariable == null) {
...
if(hashCodeVariable == null && equalsVariable.equals(EQUALS_METHOD)) {

hashCodeVariable 是 !null,否则在第一个 if 语句中会引发 NullPointerException。所以条件为假。

关于java - "Change this condition so that it does not always evaluate to false"-SonarQube,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48905501/

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