Android switch语句之后的不可访问代码
我在switch语句后出现无法访问的代码错误,我不知道如何解决。我试图删除该行,但如果删除该行,则会出现很多错误。我的代码在上面。有人能帮我吗?提前谢谢。代码确实无法访问: 所有案例都是失败的(它们没有Android switch语句之后的不可访问代码,android,eclipse,Android,Eclipse,我在switch语句后出现无法访问的代码错误,我不知道如何解决。我试图删除该行,但如果删除该行,则会出现很多错误。我的代码在上面。有人能帮我吗?提前谢谢。代码确实无法访问: 所有案例都是失败的(它们没有break语句,因此匹配后的所有案例都将执行),并在default案例中结束,该案例引发异常。这意味着抛出异常后的代码将永远不会执行 也许你想做的是rahter这样的事: public Cursor query(Uri paramUri, String[] paramArrayOfString1,
break
语句,因此匹配后的所有案例都将执行),并在default
案例中结束,该案例引发异常。这意味着抛出异常后的代码将永远不会执行
也许你想做的是rahter这样的事:
public Cursor query(Uri paramUri, String[] paramArrayOfString1, String paramString1,String[] paramArrayOfString2, String paramString2)
{
SQLiteQueryBuilder localSQLiteQueryBuilder = new SQLiteQueryBuilder();
if (paramUri.getPathSegments().size() == 1);
for (StringBuilder localStringBuilder = null; ; localStringBuilder = new StringBuilder(100))
switch (sURIMatcher.match(paramUri))
{
case 0:
case 1:
case 2:
case 3:
default:
throw new IllegalArgumentException("Unknown URI " + paramUri);
}
localSQLiteQueryBuilder.setTables("category");//unreachable code
while (true)
{
Cursor localCursor = localSQLiteQueryBuilder.query(mOpenHelper.getReadableDatabase(), paramArrayOfString1, paramString1, paramArrayOfString2, null, null, paramString2);
localCursor.setNotificationUri(contentResolver, paramUri);
return localCursor;
localSQLiteQueryBuilder.setTables("shop,category");
localSQLiteQueryBuilder.appendWhere("shop_category_id=category._id");
continue;
localSQLiteQueryBuilder.setTables("shop,category");
StringBuilder localStringBuilder;
localStringBuilder.append("shop_category_id=category._id");
localStringBuilder.append(" AND ");
localStringBuilder.append("_id");
localStringBuilder.append('=');
localStringBuilder.append((String)paramUri.getPathSegments().get(1));
localSQLiteQueryBuilder.appendWhere(localStringBuilder.toString());
continue;
localSQLiteQueryBuilder.setTables("shop,category");
localSQLiteQueryBuilder.setDistinct(true);
localStringBuilder.append("shop_category_id=category._id");
localStringBuilder.append(" AND ");
localStringBuilder.append("shop_category_id");
localStringBuilder.append('=');
localStringBuilder.append((String)paramUri.getPathSegments().get(1));
localSQLiteQueryBuilder.appendWhere(localStringBuilder.toString());
paramString2 = "shop._id";
}
}
我想这是因为你的开关坏了……你必须使用break代码>
switch (sURIMatcher.match(paramUri)){
case 0:
// do something
break;
case 1:
// do something
break;
case 2:
// do something
break;
case 3:
// do something
break;
default:
throw new IllegalArgumentException("Unknown URI " + paramUri);
}
谢谢你的回复。我做了更改,但我仍然有这个问题。@melib-真奇怪。请您将新代码添加到问题中,作为对问题的编辑-仅第一行和上面的行-第一行之后的所有内容都是无关的。嘿,非常感谢您的关注,但我解决了问题。我在if之后有一个分号(paramUri.getPathSegments().size()==1)这导致了错误。我删除了它,现在一切都好了。
switch (sURIMatcher.match(paramUri))
{
case 0:
//your code
break;
case 1:
//your code
break;
case 2:
//your code
break;
case 3:
//your code
break;
default:
//your code
break;
}