2013-10-10 68 views
-4

我面临错误无法从int转换为布尔值,这里是我得到这个问题的代码。错误无法从int转换为布尔值

private boolean seeDB() 
    { 
    int i = 1; 
    SQLiteDatabase localSQLiteDatabase = null; 
    try 
    { 
     localSQLiteDatabase = SQLiteDatabase.openDatabase(DB_PATH + DB_NAME, null, 1); 
     localSQLiteDatabase = localSQLiteDatabase; 
     label01: 
      if (localSQLiteDatabase != null) 
     localSQLiteDatabase.close(); 
     if (localSQLiteDatabase != null); 
     while (true) 
     { 
     return i; 
     } 
    } 
    catch (SQLiteException localSQLiteException) 
    { 
     break label01; 
    } 
    } 
+0

您已声明此方法返回一个布尔值。但是你正在返回你已经声明为int的'i'。 –

+0

你正在返回一个'int'。你应该返回一个'boolean'。将返回类型从'boolean'更改为'int'或者调整您的逻辑。 (从循环中判断只运行一次,随机标签表达式 - 我认为后者会是一种更强的方法。) – Makoto

+0

您可以根据i的值将返回类型更改为int(或)返回布尔值(true或false) – upog

回答

2

你的方法的返回类型boolean

private boolean seeDB() 

和你正在返回int

return i; 

这样的错误是正确的。

另一个错误是

if (localSQLiteDatabase != null); <-- 

这个条件与额外;

结束还有最后你应该重新考虑一下你的逻辑,告诉我们您正在尝试做的。你可能会得到更好的逻辑。

在这里,你在做什么

private boolean closeDB() 
     { 
     SQLiteDatabase localSQLiteDatabase = null; 
     try 
     { 
      localSQLiteDatabase = SQLiteDatabase.openDatabase(DB_PATH + DB_NAME, null, 1); 
      if (localSQLiteDatabase != null){ 
      localSQLiteDatabase.close(); 
      return true; // opended DB closed 
      }else{ 
      return false;// no connections opened right now. 
      } 

     } 
     catch (SQLiteException localSQLiteException){ 
     } 
+1

用几秒钟打我,+1 :-) –

+0

@sᴜʀᴇsʜᴀᴛᴛᴀ请问你能告诉我我的方法应该是什么样子 – Sun

+0

哦,我的运气不好,我发现我的错误 – Sun

1

一些想法你的方法是假设返回布尔:

private boolean seeDB() 

,但你是返回一个int

return i; 

定义我as int

int i = 1; 
0

你的方法的返回类型是布尔值,你试图返回int值

1

嗯,是的,问题就在这里:

while (true) 
{ 
    return i; 
} 

的方法声明为返回boolean,但i声明作为int。这是行不通的。您需要将退货类型更改为int,或者想要返回true以及何时返回false

此外:

  • i值是总是将是1
  • 你在while(true)循环,这是毫无意义的
  • 你突破到标签的方式返回它在我知道的catch块中是无效的。
  • 你已经有了一个毫无意义的if在这里的讲话:

    if (localSQLiteDatabase != null); 
    

什么是你真正想实现这个代码?看起来它只是非常反编译的代码,说实话。我建议你从头开始,准确找出你想要达到的目标,然后从这里开始。您目前的代码非常混乱,无法使用。

0

如果我是一种标志,那么它应该是布尔类型而不是int。你的方法的返回类型是booelan。对于使用int类型的任何具体原因。

- 亚

相关问题