【问题标题】:Why is Eclipse asking to declare strictfp inside enum为什么 Eclipse 要求在枚举中声明 strictfp
【发布时间】:2015-02-03 18:28:15
【问题描述】:

我正在尝试 Java 中的枚举类型。当我写下面的课时,

public class EnumExample {
  public enum Day {
    private String mood;
    MONDAY, TUESDAY, WEDNESDAY;
    Day(String mood) {

    }
    Day() {

    }
  }
 }

编译器说:Syntax error on token String, strictfp expected.
我知道strictfp 是什么,但它会来这里吗?

【问题讨论】:

  • 这是最好的日食:D strictfp 与字符串无关,但与浮点运算有关:stackoverflow.com/questions/517915/…
  • Eclipse 也会给出同样的错误,如果你不小心在你的常量声明名称中放置了一个空格而不是下划线。喜欢“MONDAY_INT VALUE”

标签: java eclipse enums strictfp


【解决方案1】:

您可能忘记在最后一个枚举常量后添加分号。

public enum Element {
    FIRE,
    WATER,
    AIR,
    EARTH,  // <-- here is the problem

    private String message = "Wake up, Neo";
}

【讨论】:

  • 没错。这会在嘲笑甚至没有枚举值的枚举时咬你一口。然后解决方案是添加分号,如: private static enum EmptyEnum implements EnumKey { ; @Override public String key() { return null; } }
  • 这太厚脸皮了:)
【解决方案2】:

枚举常量必须是first in the enum definition,在private 变量之上。

Java 要求先定义常量,然后再定义任何字段或方法。

试试:

public enum Day {
    MONDAY, TUESDAY, WEDNESDAY;
    private String mood;
    Day(String mood) {

    }
    Day() {

    }
  }

【讨论】:

  • 酷,明白了。但是,这与strictfp 没有任何关系,对吧?
  • 没有。我的猜测是 Eclipse 解析器搞砸了。您的代码有错误,但该错误与strictfp 无关。
  • 正确,枚举常量应该放在第一位。然后我们就可以写私有变量了。
猜你喜欢
  • 1970-01-01
  • 2013-07-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-11-28
  • 1970-01-01
  • 1970-01-01
  • 2013-01-04
相关资源
最近更新 更多