2011-11-22 87 views
0

该代码的问题似乎是执行if语句的'else'部分,即使变量匹配(so '如果'是真的)。有什么建议吗?正在执行的代码的其他部分,即使string.equals(otherstring)为真

谢谢!

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

+0

InstalledDBversion.equals(PackedDBversion)没有返回您认为的结果。为了找出这个值真正成立的地方,在这条线上有一个断点,并检查当地人看看这个值是什么。这是一个布尔?如果是的话,它返回什么价值?如果它没有返回你所期望的,那么你的逻辑在某个地方是错误的。 – BigBug

+0

你是否检查过if(条件)部分中每个单词的拼写? – Stuti

+0

我想这是Java。 – ds27680

回答

1
else 
    showDialog(DBCHECKFAILDIALOG); 

initialiseDatabase = false; 
copyDB(); 

固定缩进为你。 copyDB位于if/then/else区块之外。使用带有代码格式的IDE。

+0

啊!我明白了......我错过了{}愚蠢,愚蠢的...... * ooof * –

0

都应该被包括在其他块中,怎么行?仅包含showDialog(DBCHECKFAILDIALOG)。你是否错过了其他块的一组{}

+0

啊!我明白了......我错过了{} ..愚蠢的,愚蠢的.. ooof –

相关问题