ho il seguente codice:Suggerimento Intellij Idea: la condizione è sempre falsa: può essere vero qui? (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;
}
Ora IntelliJ IDEA mi dà per la seconda e la terza invocazione getBoolean()
il seguente suggerimento:
Condition 'getBoolean()' is always 'false'
Ora la mia comprensione, che non è true, dal getBoolean()
può essere true
o false
, a seconda del valore casuale generato. Mi manca qualcosa qui, o è un bug in IntelliJ Idea?
Penso di no. Invoca un altro 'getBoolean()' rispetto a quello che hai postato, o è un bug in Intellij Idea (nel qual caso dovresti presentare un bug report). Cosa ottieni quando esegui il tuo codice? – Axel
Non c'è altro 'getBoolean()', è solo un progetto di test per questo metodo. L'esecuzione del codice a volte restituisce 'false e talvolta' true' come ci si aspetterebbe. –
Se il valore restituito da 'getBoolean()' non è casuale, IntelliJ sarebbe corretto. Quindi immagino che sia davvero un bug (leggi come: forse una sorta di ottimizzazione/semplificazione errata). – Marvin