Java 错误无法从int转换为boolean

Java 错误无法从int转换为boolean,java,Java,我面临无法从int转换为boolean的错误,下面是我遇到这个问题的代码 private boolean seeDB() { int i = 1; SQLiteDatabase localSQLiteDatabase = null; try { localSQLiteDatabase = SQLiteDatabase.openDatabase(DB_PATH + DB_NAME, null, 1); localSQLiteDatabas

我面临无法从int转换为boolean的错误,下面是我遇到这个问题的代码

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;
    }
  }

您的方法返回类型
boolean

private boolean seeDB()
您将返回
int

 return i;
所以这个错误是正确的

另一个错误是

  if (localSQLiteDatabase != null);   <--

假设您的方法返回布尔值:

private boolean seeDB()
但您返回的是int

    return i;
i被定义为int

int i = 1;

您的方法返回类型是布尔值,您试图返回int值是的,问题在于:

while (true)
{
    return i;
}
该方法声明为返回
boolean
,但
i
声明为
int
。那是行不通的。您需要将返回类型更改为
int
,或者确定何时返回
true
,何时返回
false

此外:

  • i
    的值始终为1
  • 您在
    while(true)
    循环中返回它,这是毫无意义的
  • 据我所知,您在
    catch
    块中破坏标签的方法是无效的
  • 这里有一个毫无意义的
    if
    语句:

    if (localSQLiteDatabase != null);
    

使用此代码,您实际上想要实现什么?老实说,它看起来只是一个糟糕的反编译代码。我建议你从头开始,明确你想要达到的目标,然后从那里开始。您当前的代码非常混乱,没有任何帮助。

如果i是一种标志类型,那么它应该是boolean而不是int类型。您的方法的返回类型是booelan。使用int-type作为i的具体原因


-Ria

您已声明此方法返回布尔值。但是您返回的是已声明为int的
i
。您返回的是
int
。您应该返回一个
布尔值。将返回类型从
boolean
更改为
int
或调整逻辑。(从只运行一次的循环和随机标签表达式判断——我认为后者将是一种更强的方法。)您可以根据I return的值将返回类型更改为int(或),返回一个布尔值(true或false)。此外,您可能需要重新考虑将
return I
封装在
while(true)中
-这似乎没什么意义,因为不会发生循环。我还认为,您不希望分号出现在
上方的行中,而(true)
。最后一行是
localSQLiteDatabase=localSQLiteDatabase什么都不做。这一定是我见过的最糟糕的代码之一。你到底想干什么?几秒钟之内就打败了我,+1:-)@sᴜʀᴇsʜᴀᴛᴛᴀ 请你告诉我我的方法应该是什么样的好运气,我找到了我的mistake@AbrahimNeil伟大的很乐意帮忙。但千万不要不解释你的问题。:)
if (localSQLiteDatabase != null);