Estoy escribiendo una aplicación para Android que hace un montón de cosas. Recientemente modifiqué mi código para tener una mejor estructura, pero de repente me aparece un problema muy extraño.IF instrucción simplemente no está funcionando
handleRequest(String str)
{
boolean foo = executeCommand(str);
this.publishProgress("FOO1: " + foo);
if (foo == false);
{
this.publishProgress("FOO2: " + foo);
sendString("Failed to execute: " + str);
}
this.publishProgress("FOO3: " + foo);
sendEOM();
}
El código anterior debe ejecutar un comando y almacenar 'foo' con si el comando se ejecutó correctamente. Este código está dentro de una AsyncTask de Android (hilo) así que uso 'publishProgress' para mostrar un brindis.
He estado hojeando el depurador y ¡FOO es cierto! Los brindis muestran que FOO también es cierto durante todo el camino. Sin embargo, sigue adelante y salta dentro del bloque IF y lo ejecuta también. Nunca había visto esto antes, creo que es un problema con Java. Estaba pisando la función 'executeCommand' y parece que también está salteando declaraciones de retorno.
He ejecutado el código en un dispositivo virtual y uno real y ambos lo hacen.
¿Alguna idea? Estoy completamente perdido aquí.
quite el punto y coma después de la sentencia if –
No es su problema, pero más limpio y más claro a usar 'if (! Foo)' en lugar. – dimo414
@ dimo414 Bien, estaba frustrado cuando publiqué esto, así que lo cambié a "FOO == FALSE" solo para que fuera tan explícito que no pude haber visto nada malo. – yellow