符号未使用枚举找到

时间:2014-12-07 12:35:08

标签: java enums

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

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 \ fullyNewPackageInNewProject中我有以下两个文件: Day_OnlyClassDefinedWithThisName.java TestEnum.java

Day_OnlyClassDefinedWithThisName.java如下所示:

package com.islbahamas.completelyNewPackageInNewProject;

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

和TestEnum.java看起来像这样:

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:找不到符号   symbol:class Day_OnlyClassDefinedWithThisName   location:class com.islbahamas.completelyNewPackageInNewProject.TestEnum

即使导入(尽管不必要)声明包括(如下所示),我也有同样的错误

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;
    }
}

1 个答案:

答案 0 :(得分:0)

如果包含您的枚举和测试类Day__.javaEnumTest.java的文件位于同一目录中,那么这应该可行。如果他们在不同的目录中, 然后在EnumTest中,您需要在顶部附近添加import语句,其完整包名称为Day__,例如:

import path.to.Day__;

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