在 Java 開發中,遇到 Syntax error on token "}", delete this token 錯誤時,往往是因為大括號配對錯誤、多餘或缺失導致。這類錯誤雖然提示刪除該 token,但實際上可能是結構嵌套問題。
開發者在 Eclipse 中編寫 Android Activity 代碼時,發現類結構末尾的右大括號報錯。代碼結構如下:
public class MainActivity extends ActionBarActivity {
private ImageButton Imagebutton = null;
private TextView textView = null;
private Handler handler = new Handler() {
public void handleMessage(Message msg) {
String result = msg.obj.toString();
textView.setText(result);
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Imagebutton = (ImageButton) findViewById(R.id.button1);
textView = (TextView) findViewById(R.id.textView2);
Imagebutton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
new Thread() {
public void run() {
try {
// 算法省略
} catch (Exception e) {
e.printStackTrace();
}
}
}.start();
}
});
}
}
編譯器提示最後一個 } 有語法錯誤,要求刪除。
經排查,發現是 匿名內部類或方法的大括號嵌套層級不匹配。常見情況包括:
new OnClickListener() { ... } 缺少閉合大括號new Thread() { ... } 匿名類結構未正確閉合{ 是否有對應的 }。new Thread() { ... }.start(); 結構完整。最終原提問者反饋:「已經解決了~是一些函數寫的地方不對」,確認為大括號嵌套位置錯誤導致。