1

在学习 java 时,我在 SO 周围闲逛,发现问题116574接受的答案包含一些我不理解的 java 代码。

编辑:代码基本上是这样的:

public enum SomeEnum {

    FUN0 {
        @Override
        public void function() {
              System.out.println("0 0 0 0 0");
        }
    },
    FUN1 {
        @Override
        public void function() {
              System.out.println("1 1 1 1 1");
        }
    };

    public abstract void function();

    public static void main(String[] args) throws Exception {

            for (SomeEnum test : values()) {
                    test.function();
            }
    }
}

由于代码的组织,它看起来很先进,我对此很好奇。如果 SO 适合问这种问题:有人愿意解释一下这段代码吗?

枚举是如何包含 main 的?它不应该是一个类吗?(Eclipse 对此不太满意,而是在询问“选择 Java 应用程序”后运行 main 函数)这个 FUN0、FUN1 的构造是什么?

指向一些解释该主题的教程文本的指针已经让我很高兴。

4

1 回答 1

2

这是一个enum每个实例都覆盖该方法的getResult方法。

您应该记住的是,anenum或多或少只是一个普通课程。

为什么 FileSizeBench 是一个枚举而不是一个类?

因为它是使用enum关键字而不是class. 使用Anenum是因为SomeEnum具有预定义(在编译时知道)数量的实例。

于 2012-07-26T09:43:01.187 回答