Ich habe den folgenden Code:Intellij Idee Hinweis: Bedingung ist immer falsch - kann das hier wahr sein? (Java)
public String testExitPoints() {
boolean myBoolean = false;
try {
if (getBoolean()) {
return "exit 1";
}
if (getBoolean()) {
throw new RuntimeException();
}
} finally {
myBoolean = true;
}
if (getBoolean()) {
return "exit 2";
}
return "exit 3";
}
public static boolean getBoolean() {
Random rand = new Random();
return rand.nextInt() > 100;
}
Jetzt Idee IntelliJ gibt mir für den zweiten und dritten Aufruf von getBoolean()
den folgenden Hinweis:
Condition 'getBoolean()' is always 'false'
Nun zu meinem Verständnis, das ist nicht true, da getBoolean()
entweder true
oder false
sein kann, abhängig vom generierten Zufallswert. Fehle ich hier etwas oder ist das ein Fehler in IntelliJ Idea?
denke ich nicht. Sie rufen entweder ein anderes 'getBoolean()' als das auf, was Sie gepostet haben, oder es ist ein Fehler in Intellij Idea (in diesem Fall sollten Sie einen Fehlerbericht einreichen). Was bekommst du, wenn du deinen Code ausführst? – Axel
Es gibt kein anderes 'getBoolean()', es ist nur ein Testprojekt für diese Methode. Das Ausführen des Codes gibt manchmal "falsch" und manchmal "wahr" zurück, wie Sie es erwarten würden. –
Wenn der Rückgabewert von 'getBoolean()' nicht zufällig war, wäre IntelliJ korrekt. Also ich denke, es ist in der Tat ein Fehler (lesen Sie: vielleicht eine Art von inkorrekter Optimierung/Vereinfachung). – Marvin