Ich habe die folgenden Zeilen Code und Sonarqube sagt,Wie kann die untere Zeile ein Sonar Qube-Problem erzeugen, das immer auf false auswertet?
„diesen Zustand ändern, so dass es nicht immer falsch bewerten ist“
.
Unten ist die Zeile.
if (params.isEmpty() && params == null) {
throw new ServiceSDKException("Parameters cannot be empty or null!");
}
Unten ist die ganze Methode, falls Sie brauchen.
public void init(String params) throws ServiceSDKException {
if (params.isEmpty() && params == null) {
throw new ServiceSDKException("Parameters cannot be empty or null!");
}
String[] configParams = params.split(",");
options.setMqttURL(configParams[0]);
options.setMqttClientID(configParams[1]);
try {
options.setWillMessage("v1/items/mqtt/0/event/will"
, "Last will"
, 2, true);
new File("./db").mkdir();
edgeNode = EdgeNodeFactory.createMQTTChannel("./db", options,
subscriptionTask, 500, 500);
isClientConnected = true;
} catch (EdgeNodeException e) {
isClientConnected = false;
throw new ServiceSDKException("EdgeNodeException occurred", e);
}
}
Wenn Parameter Null ist, erhalten Sie eine NullPointerException. Sie sollten zuerst nach null suchen und dann ist isEmpty() mit einer oder Operation (||) – JDDelgado
Nichts ist sowohl '" "und" null ". Daher kann die Bedingung niemals als wahr gewertet werden. –