私はたくさんのことをするアンドロイドアプリを書いています。私は最近、コードをリファクタリングして構造を改善しましたが、突然私は非常に奇妙な問題を抱えています。IF文が正常に動作しない
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();
}
上記のコードはコマンドを実行し、コマンドが正しく実行された場合は 'foo'を格納する必要があります。このコードはAndroid AsyncTask(スレッド)の内部にあるので、私は 'publishProgress'を使ってトーストを表示します。
私はデバッガを裏返してきており、FOOは真です!トーストはFOOが真実であることを示しています。しかし、それは先に進み、IFブロックの中でジャンプし、それも実行します。私は以前これを見たことがない、私はJavaの問題だと思う。私は関数 'executeCommand'を踏んでいて、リターン文もスキップしているように見えます。
仮想デバイスと実際のデバイスでコードを実行しましたが、どちらもこれを行います。
アイデア?私は完全にここに迷っています。あなたはif
文の後にセミコロンを置く>if (foo == false)
は、if文 –
なく、あなたの問題はなく、代わりに ''(もし!FOO)を使用するクリーナーと明確にした後、セミコロンを削除した場合、書き込み後のコードのブロックを開始する必要があります。 – dimo414
@ dimo414私はこれを投稿した時点で不満を抱いていたので、それを「FOO == FALSE」に変更しました。 – yellow