あなたが求めている「慣習」は、あなたの価値の使用と定義に沸きます。値Enumを作成するときは、をそのタイプのとして処理する必要があります。つまり、クラス内のフィールドは次のように定義する必要があります。
private MyEnum avgReflection;
private MyEnum maxLifesteal;
...
public MyEnum getAvgReflection {
return this.avgReflection;
}
など。
ここで、Enumsはdouble値を返すことができますが、これらの値は静的です。私はあなたが静的な値を心配しているとは思っていませんが、代わりに静的な値のセットかもしれません。
あなたは、2つの可能なオプションがあります。配列を使用して、上の2つの制約
public enum MyEnum {
averageReflection(0),
maximumLifeSteal(1);
private int value;
private MyEnum(int value) {
this.value = value;
}
public int getValue() {
return this.value;
}
}
...
private double[] attributes = new double[100]; // arbitrary initialization
public double getAttribute(MyEnum attribute) {
return this.attributes[attribute.getValue()];
}
:すべての値を保持して、インデックスとして列挙型を使用するフィールドとして可能なすべてのパラメータを宣言、または1つの集約フィールドを作成します(プリミティブ値が必要で、パフォーマンスについて懸念していると仮定します)、すべての値が同じ型でなければならず、属性の数はコンパイル時に設定されます。
はまた、あなただけの地図<文字列、ダブル>を使用するか、< MyEnum、ダブル>をマップすること、あるいは< MyEnum、オブジェクト>の地図。マップタイプを使用すると、動的にサイズの設定されたセットを維持したり、複数のタイプを保持することができます(値の変換による高価なオーバーヘッド)。
保持する必要がある属性の量、許容したいオーバーヘッドの種類、およびスタイルに基づいて決定する必要があります。
ありがとうございます!それらはすべて数値であり、すぐに新しいものが追加されることはありません。口語とその他のために、私は別々のゲッターを作るのが良いと思います。 – AscendedKitten
整数は完全に「double」として表現できますので、問題はありません – Moira