Android 令牌“else”上的语法错误删除此令牌
我这辈子都修不好。它在其他服务器上返回一个错误。我在所有其他有相同问题的线程上尝试了所有方法,但都不起作用Android 令牌“else”上的语法错误删除此令牌,android,if-statement,Android,If Statement,我这辈子都修不好。它在其他服务器上返回一个错误。我在所有其他有相同问题的线程上尝试了所有方法,但都不起作用 @Override public boolean onOptionsItemSelected(MenuItem item) { //this method is used for handling menu items' events // Handle item selection switch (item.getItemId()) { case R.i
@Override
public boolean onOptionsItemSelected(MenuItem item) { //this method is used for handling menu items' events
// Handle item selection
switch (item.getItemId()) {
case R.id.goBack:
if(myWebView.canGoBack()) {
myWebView.goBack();
}
return true;
else
return super.onOptionsItemSelected(item);{
}
}
}
Eclipse之所以抱怨,是因为else语句不在if语句之后——中间有一个返回true,顺便说一句,它会阻止执行后面的任何代码。修正缩进和代码格式有助于发现并防止类似这样的简单错误
public boolean onOptionsItemSelected(MenuItem item) {
// Handle item selection
switch (item.getItemId()) {
case R.id.goBack:
if (myWebView.canGoBack()) {
myWebView.goBack();
return true;
}
}
return super.onOptionsItemSelected(item);
}
错误是因为在java中,最有可能的是定义if……块的任何编程语言,如C、C、C++等。如果存在,否则块必须在IF块或Sif语句定义之后出现,如果IF和OR之间的任何其他语句是非法的,则都是正确的。但是,在else块之前有一个return语句,这是非法的和无用的,因为return语句之后的任何代码块都变得不可访问 您可以将代码更改为
public boolean onOptionsItemSelected(MenuItem item) {
// Handle item selection
switch (item.getItemId()) {
case R.id.goBack:
if (myWebView.canGoBack()) {
myWebView.goBack();
return true;
}
break;
default:
return super.onOptionsItemSelected(item);
}
}
这就是你的代码在编辑时的实际外观吗?没有缩进?难怪你有问题,是的。这会导致它失败吗?不,Java编译器不在乎。但这使得您很难看到代码块实际上是如何排列的。结果是,大括号放错了位置,这导致了此错误。您的if条件已经完成,因为在if子句后面有一条语句读取return true;。根据您试图实现的目标,您可能希望将其放在一个块中。我已经稍微修复了缩进-正如前面的注释中所提到的,您的代码显然已损坏。