0

このコードの問題は、変数が一致している場合でも、ifステートメントの「else」部分が実行されることであるようです(したがって、「if」はtrueです)。何かアドバイスをお願いします。

ありがとう!

    public void CheckInstalledDBVersion() throws NullPointerException, IOException {

    try {

                  //TRY TO OPEN DATABASE AND READ VERSION
                  //WRITE VERSION TO InstalledDBversion

    } catch(RuntimeException e) {

                  //IF TABLE COULD NOT BE QUERIED
                  //SET InstalledDBversion to Bogus value

        InstalledDBversion = "00";
        Log.d("RTE", ".. but we've catched it!");

    } finally {
        if (InstalledDBversion.equals(PackedDBversion)){

            // Installed DBVersion == Packed DBVersion .. nothing happens

        }
        else

                showDialog(DBCHECKFAILDIALOG);
            initialiseDatabase = false;
            copyDB();
        }
    }


だから、実行するとcopyDB();InstalledDBversion.equals(PackedDBversion) == true

4

2 に答える 2

1
else
   showDialog(DBCHECKFAILDIALOG);

initialiseDatabase = false;
copyDB();

インデントを修正しました。copyDBブロックの外にありif/then/elseます。コードフォーマットを備えたIDEを使用します。

于 2011-11-22T08:42:19.063 に答える
0

elseブロックにはどの行が含まれることになっていますか?含まれてshowDialog(DBCHECKFAILDIALOG)いるだけです。{}elseブロックのセットが不足していますか?

于 2011-11-22T08:40:58.773 に答える