首页 > Java > java教程 > 正文

在Java中,什么原因会导致'Cannot find symbol'错误?

王林
发布: 2023-08-19 12:37:26
转载
4754 人浏览过

在Java中,什么原因会导致"Cannot find symbol"错误?

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

但是,在导入任何类时:

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

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

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

您将收到一个异常,显示"无法找到符号......"

示例

在以下示例中,我们尝试从键盘(System.in)读取表示用户名称的字符串值。为此,我们使用了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);
   }
}
登录后复制

编译时错误

由于我们在程序中使用了一个名为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);
   }
}
登录后复制

输出

Enter your name:
krishna
Hello krishna
登录后复制

以上是在Java中,什么原因会导致'Cannot find symbol'错误?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:tutorialspoint.com
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板