【问题标题】:Can not compile enums in Eclipse无法在 Eclipse 中编译枚举
【发布时间】:2026-02-19 20:10:02
【问题描述】:

在 Eclipse 中尝试在我的 Android 项目中引入枚举时,遇到了以下问题: 编译器说:

  1. java.lang.Enum 类型无法解析。它是从所需的 .class 文件中间接引用的
  2. 枚举类型不是通用的;它不能用参数参数化

我在 Ubuntu 10.04 下工作并使用 Eclipse v.3.5.2。尝试同时使用 Java 6 OpenJDK 和 Java 6 Sun,但没有成功。

谁能帮我解决这个问题?

代码如下:

public class MyClass {

  public MyClass() {
  }

  ...

  enum MyEnum {
    CONST1, CONST2, CONST3;
  }
}

【问题讨论】:

  • 代码看起来正确。最后的分号甚至是可选的。

标签: java eclipse enums


【解决方案1】:

打开项目的属性,选择“Java Compiler”页面并将“Compiler Compliance level”设置为“1.5”或更高。

【讨论】:

  • 不幸的是,我无法将“编译器合规性级别”设置为“1.5”,因为我对 1.5 禁止的接口使用了 @Override 注释
  • @Artem, @Override 在 JDK 1.5 中是允许的
  • @Artem:如果不能将合规级别设置为 1.5,则不能使用枚举,因为它们仅在 Java 5 中允许使用。
  • @Artem:对不起,我很清楚 因为 Java 5(包括 Java 6)允许使用枚举。当然,除非您将类或源兼容性设置为 1.4 或更低,否则它们应该可以与 Java 6 一起使用。
  • 谢谢亚伦。这绝对是 Eclipse 中的错误 - 可能是因为其他警告/错误
【解决方案2】:
  1. 转到出现构建错误的项目属性(右键单击 > 属性)
  2. 查看“构建路径”部分中的“库”标签
  3. 在列表中找到“JRE System Library”(如果缺少,则此错误消息不是 Eclipse 错误,而是错误配置的项目)
  4. 删除“JRE 系统库”
  5. 点击“添加库...”,选择“JRE 系统库”并为项目添加适当的 JRE(例如“工作区默认 JRE”)
  6. 在库选择中点击“完成”,在项目属性中点击“确定”,然后等待重新构建项目

希望错误能得到解决...

【讨论】:

    【解决方案3】:

    关闭有错误的项目。

    打开一个不同的项目并在模拟器中启动。关闭替代项目。

    打开原来的项目,错误应该不再被证明。

    不知道它为什么起作用,或者是否需要实际启动应用程序,但它清除了错误。

    【讨论】: