该代码的问题似乎是执行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
InstalledDBversion.equals(PackedDBversion)没有返回您认为的结果。为了找出这个值真正成立的地方,在这条线上有一个断点,并检查当地人看看这个值是什么。这是一个布尔?如果是的话,它返回什么价值?如果它没有返回你所期望的,那么你的逻辑在某个地方是错误的。 – BigBug
你是否检查过if(条件)部分中每个单词的拼写? – Stuti
我想这是Java。 – ds27680