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がこの種の質問をするのに適している場合:誰かがこのコードについて少し説明してくれるでしょうか?

enum に main が含まれているのはどうしてですか? それはクラスであるべきではありませんか?(Eclipse はこれにあまり満足していませんが、「Java アプリケーションの選択」を求めた後、メイン関数を実行します) FUN0、FUN1 を使用したこの構造は何ですか?

このトピックを説明するチュートリアル テキストへのポインターは、すでに私を幸せにします。

4

1 に答える 1

2

これはenum、各インスタンスがgetResultメソッドをオーバーライドする です。

覚えておくべきことは、 anenumは多かれ少なかれ単なる通常のクラスであるということです。

FileSizeBench が列挙型でクラスではないのはなぜですか?

enumの代わりにキーワードを使用して宣言されているためですclass。Anenumが使用されるのSomeEnumは、事前定義された (コンパイル時にわかっている) 数のインスタンスがあるためです。

于 2012-07-26T09:43:01.187 に答える