gpt4 book ai didi

Java无法从同一目录中的.class中找到符号

转载 作者:行者123 更新时间:2023-12-01 14:08:25 24 4
gpt4 key购买 nike

我有两个文件:MyStringLog.java(扩展了ArrayStringLog)和TestDriver.java,位于同一目录中。为什么 TestDriver.java 无法识别 MyStringLog 类中的 MyStringLog 构造函数?在 TestDriver.java 中我声明:

MyStringLog animals = new MyStringLog("animals");

这应该构造一个名为 Animals 的新 MyStringLog 对象,但是在编译时出现 2 个错误,两个错误都是未找到 MyStringLog 符号。

最佳答案

我已经让它大致工作了。为此...

对于文件ArrayStringLog.java,我删除了implements StringLogInterface,因为我根本无权访问该接口(interface)。完成此操作后,我删除了package ch02.stringLogs;。当我在 package... 仍然存在的情况下编译此文件时,收到错误: Thread "main"java.lang.NoClassDefFoundError: ArrayStringLog (错误名称: ch02/stringLogs/ArrayStringLog)

然后在MyStringLog.java中,我删除了import ch02.stringLogs.*;。然后,我保存并编译了代码,并运行了 TestDriver,没有收到任何编译错误。

这让我相信您的错误源于 ArrayStringLog.java 中的 package 语句。

<小时/>

为了最终获得编译,我将所有四个文件(ArrayStringLog、MyStringLog、StringLogInterface、TestDriver)放入同一目录中,删除任何 package... 语句,添加回 将 StringLogInterface 实现为 ArrayStringLog.java,编译每个接口(interface),然后使用添加的 toString 方法运行 TestDriver,其输出为:

Log: animals

1. dog
2. cat

这是测试驱动程序:

public class TestDriver {
public static void main(String[] args) {
MyStringLog animals = new MyStringLog("animals");
animals.insert("dog");
animals.insert("cat");

System.out.println(animals.toString());
}
}

为了明确起见,ArrayStringLog 开头为:

public class ArrayStringLog implements StringLogInterface

关于Java无法从同一目录中的.class中找到符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18731088/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com