什么会导致 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