Java 使用枚举找不到符号
我是一名经验丰富的程序员,但对Java还不熟悉。我定义了一个枚举,但在尝试使用它时找不到符号。我看过很多答案,它们都指向命名冲突。我已经重新命名了我的枚举,但仍然没有运气。经过进一步研究,我在Oracle网站上发现了以下示例。注意,我打破了命名约定,以确保那天没有出现命名冲突Java 使用枚举找不到符号,java,enums,Java,Enums,我是一名经验丰富的程序员,但对Java还不熟悉。我定义了一个枚举,但在尝试使用它时找不到符号。我看过很多答案,它们都指向命名冲突。我已经重新命名了我的枚举,但仍然没有运气。经过进一步研究,我在Oracle网站上发现了以下示例。注意,我打破了命名约定,以确保那天没有出现命名冲突 public enum Day__ { SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY } 正如示例所示,我尝试以以下方式使用
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。我感谢您的跟进,并为我的迟回复感到抱歉。尽管我做了任何尝试,但我发布的场景都不会成功!