【问题标题】:In Enum, why I have to declare enum constants at first place, why not any method or variables? [closed]在枚举中,为什么我必须首先声明枚举常量,为什么不声明任何方法或变量? [关闭]
【发布时间】:2014-09-24 04:44:37
【问题描述】:
  package enum_movies;

   public enum Show_Day 
   {
        MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY;
   }

【问题讨论】:

  • 你可能想看看这个帖子stackoverflow.com/questions/18392885/…
  • 你的意思是,为什么要在定义任何方法之前声明枚举常量?
  • 是的,泰德,这是我的问题。
  • 我关心的只是,为什么常量必须在第一行!?为什么没有任何成员在第一行 n 稍后我将声明常量?为什么语法是这样的?

标签: java enums


【解决方案1】:

嗯,你没有。 JLS 所要求的只是there be an enum body with constants defined first,并且该正文仅包含分号是合法的。

可以拥有一个包含所有静态方法的枚举...

public enum Baz {
    ;
    public static void evilLaugh() {
        System.out.println("BWAHAHA");
    }
}

...但是如果没有要枚举的值,枚举的意义何在?

【讨论】:

  • 我关心的只是,为什么常量必须在第一行!?为什么没有任何成员在第一行 n 稍后我将声明常量?为什么语法是这样的?
  • ...因为语言规范是这么说的。我相信我也在我的回答中提供了指向特定规范的链接......
猜你喜欢
  • 1970-01-01
  • 2014-06-30
  • 1970-01-01
  • 2022-11-28
  • 1970-01-01
  • 2016-05-19
  • 1970-01-01
  • 2013-07-22
  • 1970-01-01
相关资源
最近更新 更多