行StringBuffer buffer = new StringBuffer()中无法访问的语句

时间:2018-09-06 18:22:06

标签: 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 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());
        }
    });
}

2 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:0)

您将if语句的起始花括号放错了位置。 return总是被调用,并且return之下的行永远不会执行。因此无法到达的声明。 如下所示添加花括号

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

                return;
            }

以上代码将解决此问题。但是,更好的方法是避免不必要的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");
          }
        }
    });
}