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;
}
始终使用“返回优先”模式,避免多层次的代码。