Java 第StringBuffer=new StringBuffer()行中的不可访问语句

Java 第StringBuffer=new StringBuffer()行中的不可访问语句,java,android,Java,Android,错误是: Unreachable statement in line StringBuffer buffer = new StringBuffer() 这是我的密码: public void viewAll(){ btnViewData.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Cursor

错误是:

Unreachable statement in line StringBuffer buffer = new StringBuffer()
这是我的密码:

    public void viewAll(){
    btnViewData.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Cursor res =myDB.getAllData();
            if (res.getCount() == 0)
                showMessage("Error","No data Found");
            {
                return;
            }

            StringBuffer buffer = new StringBuffer();

            while (res.moveToNext()){
                buffer.append("Id :"+res.getString(0)+"\n");
                buffer.append("Name :"+res.getString(1)+"\n");
                buffer.append("Surname :"+res.getString(2)+"\n");
                buffer.append("Marks :"+res.getString(3)+"\n\n");

            }
            showMessage("Data",buffer.toString());
        }
    });
}

您将if语句的起始大括号放错了位置。始终调用Return,并且从不执行Return下面的行。因此不可及的陈述。。 添加花括号,如下所示

            if (res.getCount() == 0){
                //show message
                showMessage("Error","No data Found");

                return;
            }
上面的代码将修复该问题。但是,更好的方法是避免不必要的返回语句。像这样:

public void viewAll(){
    btnViewData.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
          Cursor res =myDB.getAllData();
          if (res.getCount() > 0){

            StringBuffer buffer = new StringBuffer();

            while (res.moveToNext()){
                buffer.append("Id :"+res.getString(0)+"\n");
                buffer.append("Name :"+res.getString(1)+"\n");
                buffer.append("Surname :"+res.getString(2)+"\n");
                buffer.append("Marks :"+res.getString(3)+"\n\n");
            }
            //show all data
            showMessage("Data",buffer.toString());
          }
          else{
             //show message
             showMessage("Error","No data Found");
          }
        }
    });
}

更新您的代码。您在错误的位置使用了{},这就是您面临此问题的原因

if (res.getCount() == 0){
            //show message
            showMessage("Error","No data Found");
            return;
        }
始终使用“返回优先”模式,避免多层次的代码。