0
これを行うより良い方法はありますか?ネストされたenumを使用する
スピゴットのエンチャントプラグインを作成しようとしたところ、 各クラスに含まれるさまざまな 種類のエンチャントを持つ3種類のエンチャントが好きです。 初めてenumで作業しています。ありがとうございます。
public class EnchantmentType {
public enum Enchantments {
INK(Types.INK, Category.Adrian),
PUFFERFISH(Types.PUFFERFISH, Category.Adrian),
HOLYWATER(Types.HOLYWATER, Category.Adrian),
URCHIN(Types.URCHIN, Category.Adrian),
SEALORD(Types.SEALORD, Category.Adrian),
DYSPEPSIA(Types.DYSPEPSIA, Category.Adrian),
TOXIN(Types.TOXIN, Category.Adrian),
YPHOON(Types.YPHOON, Category.Adrian),
TSUNAMI(Types.TSUNAMI, Category.Adrian),
SPONGE(Types.SPONGE, Category.Adrian),
PRISTINE(Types.PRISTINE, Category.Adrian),
CLEANSE(Types.CLEANSE, Category.Adrian),
STARLIGHT(Types.STARLIGHT,Category.Zephira),
GUST(Types.GUST,Category.Zephira),
GRAVITY(Types.GRAVITY,Category.Zephira),
DETERMINATION(Types.DETERMINATION,Category.Zephira),
COURAGE(Types.COURAGE,Category.Zephira),
FOREGIVENESS(Types.FOREGIVENESS,Category.Zephira),
TORNADO(Types.TORNADO,Category.Zephira),
REDEMPTION(Types.REDEMPTION,Category.Zephira),
PEACEFUL(Types.PEACEFUL,Category.Zephira),
FLEE(Types.FLEE,Category.Zephira),
VIRTUE(Types.VIRTUE,Category.Zephira),
AMBIGUITY(Types.AMBIGUITY,Category.Zephira),
VALERE(Types.VALERE,Category.Zephira),
SANDSTORM(Types.SANDSTORM,Category.Zephira),
REKINDLE(Types.REKINDLE,Category.Zephira),
THERMALS(Types.THERMALS,Category.Zephira),
APPERTITE(Types.APPERTITE, Category.Partial);
Types eType;
Category eCat;
Enchantments(Types eType, EnchantmentType.Category eCat) {
this.eCat = eCat;
this.eType = eType;
}
Category getCategory() {
return this.eCat;
}
Types getType() {
return this.eType;
}
public enum Types {
INK, PUFFERFISH, HOLYWATER, URCHIN, SEALORD, DYSPEPSIA, TOXIN, YPHOON, TSUNAMI, SPONGE, PRISTINE, CLEANSE, STARLIGHT, GUST, GRAVITY, DETERMINATION, COURAGE, FOREGIVENESS, TORNADO, REDEMPTION, PEACEFUL, FLEE, VIRTUE, AMBIGUITY, VALERE, SANDSTORM, REKINDLE, THERMALS, APPERTITE;
}
}
Enchantments eType;
Category eCat;
public EnchantmentType(Enchantment eType) {
this.eType = eType.getType();
this.eCat = eType.getCategory();
}
public enum Category {
Adrian, Zephira, Partial;
}
}
このようなスケールでは、データ駆動型設計は、特にそれを拡張したい場合には、かなり良い選択肢です。 –
'型の列挙型は冗長であるようです。 – shmosel
@shmoselもっと同意できないので、私は投稿しています。しかし、Enchantments列挙型の別の議論を追加しなければ列挙型の名前を取得する方法は見つけられませんでしたが、カテゴリのみです。 –