什么会导致 Java 中出现"无法找到符号"错误?

javaobject oriented programmingprogramming更新于 2024/8/26 13:39:00

每当您需要在当前程序中使用外部类/接口(用户定义的或内置的)时,您都需要使用 import 关键字在当前程序中导入这些类。

但是,在导入任何类时 −

  • 如果您要导入的类/接口的路径对 JVM 不可用。

  • 如果您在 import 语句中提到的绝对类名不准确(包括包和类名)。

  • 如果您已导入使用的类/接口。

您将收到一个异常,提示 “无法找到符号 ……”

示例

在下面的例子中,我们尝试从键盘 (System.in) 读取表示用户姓名的字符串值。为此,我们使用 Java.Util 包中的扫描仪类。

public class ReadingdData {
   public static void main(String args[]) {
      System.out.println("Enter your name: ");
      Scanner sc = new Scanner(System.in);
      String name = sc.next();
      System.out.println("Hello "+name);
   }
}

编译时错误

由于我们在程序中使用了一个名为 Scanner 的类,但尚未将其导入到程序中。执行时,此程序生成以下编译时错误−

ReadingdData.java:6: error: cannot find symbol
      Scanner sc = new Scanner(System.in);
      ^
   symbol: class Scanner
   location: class ReadingdData
ReadingdData.java:6: error: cannot find symbol
      Scanner sc = new Scanner(System.in);
      ^
   symbol: class Scanner
   location: class ReadingdData
2 errors

解决方案

  • 您需要为包含所需类接口的 JAR 文件设置类路径。

  • 使用 import 关键字从包中导入所需的类。导入时,您需要指定所需类的绝对名称(包括包和子包)。

示例

import java.util.Scanner;
public class ReadingdData {
   public static void main(String args[]) {
      System.out.println("Enter your name: ");
      Scanner sc = new Scanner(System.in);
      String name = sc.next();
      System.out.println("Hello "+name);
   }
}

输出

输入您的姓名:
krishna
Hello krishna

相关文章