Java 使用枚举找不到符号

Java 使用枚举找不到符号,java,enums,Java,Enums,我是一名经验丰富的程序员,但对Java还不熟悉。我定义了一个枚举,但在尝试使用它时找不到符号。我看过很多答案,它们都指向命名冲突。我已经重新命名了我的枚举,但仍然没有运气。经过进一步研究,我在Oracle网站上发现了以下示例。注意,我打破了命名约定,以确保那天没有出现命名冲突 public enum Day__ { SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY } 正如示例所示,我尝试以以下方式使用

我是一名经验丰富的程序员,但对Java还不熟悉。我定义了一个枚举,但在尝试使用它时找不到符号。我看过很多答案,它们都指向命名冲突。我已经重新命名了我的枚举,但仍然没有运气。经过进一步研究,我在Oracle网站上发现了以下示例。注意,我打破了命名约定,以确保那天没有出现命名冲突

public enum Day__ {
    SUNDAY, MONDAY, TUESDAY, WEDNESDAY,
    THURSDAY, FRIDAY, SATURDAY
}
正如示例所示,我尝试以以下方式使用它:

public class EnumTest {
    Day__ day;

    public EnumTest(Day__ day) {
        this.day = day;
    }
}
然而,在使用Intellij编译时,我得到了以下结果:

Error:(7, 5) java: cannot find symbol
  symbol:   class Day__
  location: class com.islbahamas.firstcontact.client.EnumTest
按照Jon和Janos的建议(我非常赞赏),我创建了一个全新的项目TestProject。在路径C:\Dev\TestProject\src\com\islbahamas\completelyNewPackageInNewProject中,我有以下两个文件: Day_onlyClassDefined with thisname.java TestEnum.java

Day_onlyClassDefined with thisname.java如下所示:

package com.islbahamas.completelyNewPackageInNewProject;

/**
 * Created by Clyde on 12/7/2014.
 */
public enum Day_OnlyClassDefinedWithThisName {
        SUNDAY, MONDAY, TUESDAY, WEDNESDAY,
                THURSDAY, FRIDAY, SATURDAY
    }
package com.islbahamas.completelyNewPackageInNewProject;

/**
 * Created by Clyde on 12/7/2014.
 */
public class TestEnum {
    Day_OnlyClassDefinedWithThisName day;

    public TestEnum(Day_OnlyClassDefinedWithThisName day) {
        this.day = day;
    }
}
TestEnum.java如下所示:

package com.islbahamas.completelyNewPackageInNewProject;

/**
 * Created by Clyde on 12/7/2014.
 */
public enum Day_OnlyClassDefinedWithThisName {
        SUNDAY, MONDAY, TUESDAY, WEDNESDAY,
                THURSDAY, FRIDAY, SATURDAY
    }
package com.islbahamas.completelyNewPackageInNewProject;

/**
 * Created by Clyde on 12/7/2014.
 */
public class TestEnum {
    Day_OnlyClassDefinedWithThisName day;

    public TestEnum(Day_OnlyClassDefinedWithThisName day) {
        this.day = day;
    }
}
注意。。。两人的套餐都一样

错误: 错误:7,5 java:找不到符号 符号:仅限上课日用此名称定义 位置:class com.islbahamas.completelyNewPackageInNewProject.TestEnum

即使使用如下所示的import(尽管不必要)语句include,我也有相同的错误

package com.islbahamas.completelyNewPackageInNewProject;

import com.islbahamas.completelyNewPackageInNewProject.Day_OnlyClassDefinedWithThisName;
/**
 * Created by Clyde on 12/7/2014.
 */
public class TestEnum {
    Day_OnlyClassDefinedWithThisName day;

    public TestEnum(Day_OnlyClassDefinedWithThisName day) {
        this.day = day;
    }
}

如果包含enum和测试类Day_uu.java和EnumTest.java的文件位于同一目录中,那么这应该可以工作。如果它们在不同的目录中, 然后在EnumTest中,您需要在顶部附近添加一条导入语句,该语句的完整包名为Day_uuu,例如:

import path.to.Day__;

从错误消息中可以清楚地看出,EnumTest在包com.islbahamas.firstcontact.client中,并且由于编译器无法在同一个包中找到Day,这意味着Day.java文件必须在其他地方。

那么Day在包com.islbahamas.firstcontact.client中声明了什么包?Jon Day在包com.islbahamas.firstcontact.client中声明了;它是否在您试图编译测试代码的类路径中?你还没有告诉我们你是如何编译的。我很抱歉。是的,相同的类路径,并且枚举没有在另一个类中声明?请提供您如何编译、您的环境是什么等的所有详细信息。我已经试过了:。。。不起作用。我将修改和发布修改后的代码。好吧,问题很简单:EnumTest类不知道在哪里可以找到Day_uu;。您需要查看项目,观察文件的位置,并添加适当的导入语句。如果仍然没有发现问题,请在帖子中添加文件的目录布局,例如Linux中的tree命令。@clydesymonete这是怎么回事?Janos。我感谢您的跟进,并为我的迟回复感到抱歉。尽管我做了任何尝试,但我发布的场景都不会成功!