当前位置: 首页 > 面试题库 >

在相同的程序包和目录中找不到符号

闽承望
2023-03-14
问题内容

我有两个班,提供和课程。它们都在相同的程序包和相同的目录中。

Offer.java:

package assignment02;

public class Offering implements Comparable<Offering> {
    private Course course;
    private int CRN;
    private int semester;

    public Offering(Course course, int CRN, int semester) {
        this.course = course;
        this.CRN = CRN;
        this.semester = semester;
    }

    public int getNumCredits() {
        return course.getNumCredits;
    }

    public int getCRN() {
        return CRN;
    }

    public int getSemester() {
        return semester;
    }

    public int compareTo(Offering other) {
        if(other == null) return - 1;
        return semester - other.semester;
    }
}

Course.java:

package assignment02;

public class Course {
    private String name;
    private String rubric;
    private String number;
    private int numCredits;

    public Course(String name, String rubric, String number, int numCredits) {
        this.name = name;
        this.rubric = rubric;
        this.number = number;
        this.numCredits = numCredits;
    }

    public String getName() {
        return name;
    }

    public String getRubric() {
        return rubric;
    }

    public String getNumber() {
        return number;
    }

    public int getNumCredits() {
        return numCredits;
    }
}

当我尝试编译Offer时,出现以下错误:

D:\CS 140\assignment02>javac Offering.java
Offering.java:4: error: cannot find symbol
    private Course course;
            ^
   symbol:   class Course
   location: class Offering

Offering.java:8: error: cannot find symbol
    public Offering(Course course, int CRN, int semester) {
                    ^
   symbol:   class Course
   location: class OfferingOffering.java:8: error: cannot find symbol

我知道该错误意味着编译器无法使用“课程”执行任何操作,但是我真的不知道为什么。我也知道它最终会变得非常明显,但是我似乎无法弄清楚。任何帮助将非常感激。


问题答案:

将目录更改为的父目录assignment02。然后,您应该可以使用

javac assignment02\Course.java assignment02\Offering.java

要么

javac assignment02\Course.java 
javac assignment02\Offering.java

甚至

javac assignment02\*.java

编译器正在从当前目录中查找包中的Courseassignment02(因此,当您在assignment02目录中时,它实际上是在尝试查找assignment02/assignment02,这显然是不对的)

这样可以解决您当前的问题,然后您将获得…

assignment02\Offering.java:15: cannot find symbol
symbol  : variable getNumCredits
location: class assignment02.Course
    return course.getNumCredits;
                 ^
1 error

这将需要纠正



 类似资料:
  • 我在我的android studio中遇到过一些问题,比如没有找到java类/符号,尽管这些类和符号放在同一个目录下,或者放在同一个父目录下。我正在使用DJI的Android移动SDK。 错误示例: 无法解析符号“DJISAmpleApplication” null

  • 问题内容: 我正在尝试编译与Hexagon.java相同的程序包(和目录)中的Board.java,但出现此错误: Board.java的前几行: Hexagon.java的前几行: 我只是看不到我在做什么错。有任何想法吗? 谢谢 问题答案: 我很确定您是从错误的目录中进行编译。 您应该从 源根目录进行 编译 ,而不是从oadams_atroches目录中进行编译。 看一下这个bash会话: 如果

  • 问题内容: 我正在尝试编译Java文件,但收到此错误消息: 这表明javac找不到类BrightcoveAPI。我不知道问题出在哪里,因为它在同一目录中: 问题答案: 您需要在类路径中包含(当前目录): 一些注意事项: 在默认的类路径中,但是如果您用于指定一个显式的类路径,则仅当您指定它时才包括它。 这个答案的先前版本添加到了类路径的末尾,但是aioobe说它通常放在首位,这很有意义,因此我进行了

  • 我试图为嵌套的多项目结构运行,但我遇到了一些问题,这些问题似乎只出现在具有测试源根的项目中。作为java和gradle的新手,我肯定我打破了不止一个惯例,但我仍然认为这是可行的。 从本质上说,所有的依赖项似乎都添加得很好,但当我有一个项目只有一个测试srcDir而依赖于另一个项目,而另一个项目有一个测试srcDir时,它就无法识别根项目中的包/符号。然而,具有常规srcDirs(不是测试)的项目似

  • 我正在尝试用MinGW编译器用CMake构建PODOFO库。它需要一些外部库,如zlib、jpeg、openssl和freetype。我的cmake命令如下: cmake-g“mingw makefiles”_path=c:\users\abhishek\downloads\openSSL-0.9.8h-1-lib\lib-dpodofo_build_shared:bool=false.. 不知何

  • 我有几个Python包,我想保留在不同的文件系统上,但不幸的是它们共享相同的顶级模块名。 为了说明,目录结构如下所示: 在Python2.7中,是否有任何方法可以设置我的,以便导入这两个