Gibt es einen besseren Weg, dies zu tun?Verwenden verschachtelter Enums
Beim Versuch, ein Verzauberungs-Plugin für Spigot zu erstellen, möchte ich 3 Klassen von Verzauberungen mit verschiedenen Arten von Verzauberungen haben, die in jeder Klasse enthalten sind. Zum ersten Mal mit enums arbeiten, danke.
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;
}
}
Bei einer solchen Skalierung ist das datengesteuerte Design eine ziemlich gute Alternative, vor allem, wenn Sie es erweitern möchten. –
Die Enumeration "Typen" scheint überflüssig zu sein. – shmosel
@smossel Ich kann dem nicht zustimmen, weshalb ich posten werde. Aber ohne es und ein weiteres Argument für die Enchantments enum hinzuzufügen, konnte ich keinen Weg finden, den Namen des Enums zu erhalten, nur seine Kategorie. –