always_lanlan 2024-04-23 10:27 采纳率: 25%
浏览 8

错误: 找不到符号(标签-Java|关键词-Java多态)

今天学Java多态,上课写的一个程序,编译没有问题,但是测试的时候总会出现错误: 找不到符号。对我在同一个包下另一个文件里的类,报错。但是之前也一样编怎么以前没报过这样的错?用的vscode不知道是不是软件的问题,助教一直让我换eclipse,但是好不容易配好了各种环境真的不想换啊

img


类定义在这个文件

img

img

  • 写回答

7条回答 默认 最新

  • 专家-赤兔[在线] 全栈领域优质创作者 2024-04-23 10:27
    关注

    引自免费微信小程序:皆我百晓生

    根据您提供的信息,看起来您的Java项目存在一些编译错误。这些错误表明IDE(IntelliJ IDEA、Eclipse 或 Visual Studio Code)无法找到CycleBicycle等类。为了帮助您解决这个问题,我将提供一个详细的步骤来检查和修复可能的原因。

    首先,确保所有相关的类都在正确的包内,并且在同一目录结构下。从您提供的截图来看,似乎所有的类都位于Polymorphism包内,这是正确的做法。

    步骤1:确认类路径

    确保您的IDE已经正确设置了类路径,包括了包含源码的目录。对于VSCode,这通常通过设置java.project.path配置实现。如果尚未设置,可以在.vscode/settings.json文件中添加如下内容:

    {
        "java.project.path": "${workspaceFolder}"
    }
    

    步骤2:检查拼写和大小写

    确保类名和变量名的拼写以及大小写与文件中的定义完全一致。例如,在Usecycle.java中,您尝试创建Bicycle对象,但在Cycle.java中定义的是Bicycle而不是bicycle

    步骤3:查看代码

    下面是根据您提供的代码片段整理出的完整代码示例。请注意,我已修复了大小写错误并添加了一些缺失的部分。请确保您的代码与此相同或类似:

    Cycle.java:

    package Polymorphism;
    
    public class Cycle {
        public void ride() {
            System.out.println("ride cycle");
        }
    }
    
    class Unicycle extends Cycle {
        @Override
        public void ride() {
            System.out.println("ride Unicycle");
        }
    }
    
    class Bicycle extends Cycle {
        @Override
        public void ride() {
            System.out.println("ride Bicycle");
        }
    }
    
    class Tricycle extends Cycle {
        @Override
        public void ride() {
            System.out.println("ride Tricycle");
        }
    }
    

    Usecycle.java:

    package Polymorphism;
    
    public class Usecycle {
        public static void drive(Cycle c) {
            c.ride();
        }
    
        public static void main(String[] args) {
            Bicycle bicycle = new Bicycle();
            drive(bicycle);
        }
    }
    

    步骤4:重新编译和运行

    保存更改后,关闭并重新打开VSCode,然后执行以下命令以重新编译和运行程序:

    cd "F:\code\java\Polymorphism"
    javac -d . *.java
    java Usecycle
    

    这里 -d . 参数表示将编译后的.class文件放在当前目录下。

    如果仍然遇到问题,请检查您的系统环境,确保已经安装了Java,并且环境变量设置正确。同时,确认VSCode的Java插件(如Java Extension Pack)是最新版本,并且已正确配置。如果问题依然存在,考虑升级到最新版的VSCode和Java插件,或者暂时切换到Eclipse进行测试,以排除IDE相关的问题。

    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 4月23日

悬赏问题

  • ¥15 is not in the mmseg::model registry。报错,模型注册表找不到自定义模块。
  • ¥15 安装quartus II18.1时弹出此error,怎么解决?
  • ¥15 keil官网下载psn序列号在哪
  • ¥15 想用adb命令做一个通话软件,播放录音
  • ¥30 Pytorch深度学习服务器跑不通问题解决?
  • ¥15 部分客户订单定位有误的问题
  • ¥15 如何在maya程序中利用python编写领子和褶裥的模型的方法
  • ¥15 Bug traq 数据包 大概什么价
  • ¥15 在anaconda上pytorch和paddle paddle下载报错
  • ¥25 自动填写QQ腾讯文档收集表