我正面临错误无法从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 :(得分: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)
您的方法假设返回布尔值:
private boolean seeDB()
但是你要返回一个int
return i;
我被定义为int
int i = 1;
答案 2 :(得分:1)
是的,问题在于:
while (true)
{
return i;
}
声明该方法返回boolean
,但i
被声明为int
。那不行。您需要将返回类型更改为int
,或者在您想要返回true
时以及何时返回false
时确定。
此外:
i
的值始终将为1 while(true)
循环中返回它,这是毫无意义的catch
区块中打破标签的方法无效。你这里有一句毫无意义的if
陈述:
if (localSQLiteDatabase != null);
您实际尝试使用此代码实现的是什么?老实说,看起来它只是严重反编译的代码。我建议你从头开始,准确地解决你想要实现的目标,并从那里开始。你当前的代码非常混乱,无助。
答案 3 :(得分:0)
你的方法返回类型是布尔值,你试图返回int值
答案 4 :(得分:0)
如果i是一种标志,那么它应该是boolean类型而不是int类型。您的方法的返回类型是booelan。为i使用int类型的任何特定原因。
-RIA