Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Java

Nguyên nhân gây lỗi "Cannot find symbol" trong Java

Lỗi "Cannot find symbol" xảy ra khi compiler không tìm thấy định nghĩa của class, method, variable... được sử dụng trong code.

Các nguyên nhân phổ biến

  1. Thiếu import: Dùng class mà không import package.
  2. Sai tên class/package: Chính tả sai (case-sensitive).
  3. Classpath thiếu: File .class hoặc JAR không nằm trong classpath.
  4. Scope biến: Dùng biến ngoài phạm vi (ví dụ: biến local trong if-block dùng ở ngoài).
  5. Typo tên method/biến: Gõ sai chính tả.

Ví dụ điển hình: Quên import Scanner

public class ReadingData {
    public static void main(String args[]) {
        System.out.println("Enter your name: ");
        Scanner sc = new Scanner(System.in); // Lỗi: Cannot find symbol Scanner
        String name = sc.next();
        System.out.println("Hello " + name);
    }
}
ReadingData.java:6: error: cannot find symbol
    Scanner sc = new Scanner(System.in);
    ^
  symbol:   class Scanner
  location: class ReadingData

Cách khắc phục

import java.util.Scanner; // Thêm import này

public class ReadingData {
    public static void main(String args[]) {
        Scanner sc = new Scanner(System.in);
        // ...
    }
}

Checklist debug

  • Kiểm tra import ở đầu file.
  • Kiểm tra chính tả class/method/biến (Java case-sensitive).
  • Kiểm tra classpath: javac -cp .:lib/* Main.java.
  • Kiểm tra scope biến (đặc biệt trong loop, if, try-catch).
  • Dùng IDE (IntelliJ, Eclipse) → gợi ý import tự động (Alt+Enter).