1に関連付けられてではなく、同じ機能を持っているもののオブジェクトを作成します

user11731595:

それを読んですべての人こんにちは。

私は、単純なbukkitプラグインを作成し、プラグインのいくつかの機能を持ついくつかの助けを必要としています。

私は何をする必要があるか:すべての項目は、その項目にプレイヤークリックが、私は3つのアクションを持っており、それがアクションタイプのための私の列挙型であるとき、何をしなければならないか「アクション」を持っています

public enum GUIItemType {

    COMMAND,
    SEND,
    NOTHING;

}

しかしリットルのdoesnの `tのノウハウは、どのようにコードでそれに関連付ける値に私は抽象クラスやインタフェースを使用しなければならないことsusposeが、doesnの` tの良いあなたがしてくださいどのように役立つか、理解(1つのタイプと異なる値であってもよいですか)?

私の英語のため申し訳ありません

ジョニ:

Javaで列挙型は、彼らが信じられないほど強力になりれ、フィールドやメソッドを持つことができます。例えば、これは、各アクションの種類が異なる関連付けられた値を持つことができる方法です。

public enum GUIItemType {

    COMMAND(987),
    SEND(654),
    NOTHING(321);

    private final int value;

    GUIItemType(int value) {
        this.value = value;
    }

    public int getValue() {
        return value;
    }
}

GUIItemType.SEND.getValue() 654を返します。

各列挙項目でも持つことができます異なる動作をする:項目は、メソッドをオーバーライドすることができます。

public enum GUIItemType {

    COMMAND(987) {
        @Override
        int compute(int a) {
            return a + value;
        }
    },
    SEND(654) {
        @Override
        int compute(int a) {
            return a - value;
        }
    },
    NOTHING(321) {
        @Override
        int compute(int a) {
            return a * value;
        }
    };

    final int value;

    GUIItemType(int value) {
        this.value = value;
    }

    public int getValue() {
        return value;
    }

    abstract int compute(int value);
}

おすすめ

転載: http://10.200.1.11:23101/article/api/json?id=385403&siteId=1
おすすめ