它显示无法访问的语句错误

Posted

技术标签:

【中文标题】它显示无法访问的语句错误【英文标题】:It's showing unreachable statement error 【发布时间】:2017-12-08 06:18:24 【问题描述】:

我正在尝试对选定的项目进行祝酒,但它显示了无法访问的语句错误。

我的代码是:

btn=(Button)findViewById(R.id.button);
    btn.setOnClickListener(
            new View.OnClickListener() 
                @Override
                public void onClick(View v) 
                  btn.performLongClick();
                
            
    );
    registerForContextMenu(btn);

@Override
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) 
    super.onCreateContextMenu(menu, v, menuInfo);
    menu.setHeaderTitle("For Optimum Results");
    menu.add(0,v.getId(),0,"Hi");
    menu.add(0,v.getId(),0,"Hello");


@Override
public boolean onContextItemSelected(MenuItem item) 
    return super.onContextItemSelected(item);
    if(item.getTitle()=="Hi")
        Toast.makeText(this,"hi",Toast.LENGTH_SHORT).show();

    
return true;

【问题讨论】:

你知道这个“无法访问的代码”是什么意思吗? How do I compare strings in Java?的可能重复 另外你在return语句之后比较,这是主要问题,请学习一些java的基础知识 【参考方案1】:

你有两种错误:

1)return super (return super.onContextItemSelected(item)) ,这意味着您在第一行返回您的方法,因此下面的行不会执行。

2)错误的比较字符串 (item.getTitle()=="Hi")

正确的代码应该是这样的:

@Override
public boolean onContextItemSelected(MenuItem item) 
   //return super.onContextItemSelected(item);//remove this line
   if(item.getTitle().equal("Hi"))// also maybe you want to check not null for item.getTitle()
       Toast.makeText(this,"hi",Toast.LENGTH_SHORT).show();
   
   return true; 

【讨论】:

@user8027365 欢迎您,因此请将其标记为真实答案。 tnx

以上是关于它显示无法访问的语句错误的主要内容,如果未能解决你的问题,请参考以下文章

为啥我在 Java 中出现无法访问的语句错误?

为啥 Java 编译器不会为无法访问的 then 语句生成无法访问的语句错误?

编译错误 - 无法访问的语句

为啥 Java 会出现“无法访问的语句”编译器错误?

无法压缩访问 MDB

陷入错误循环:无法访问语句且未提供返回语句