Die "Konvention", nach der Sie fragen, läuft auf die Verwendung und Definition Ihrer Werte hinaus. Wenn Sie die Werte Enums vornehmen, müssen Sie sie als behandeln. Das heißt, die Felder in Ihrer Klasse müssten als solche definiert werden:
private MyEnum avgReflection;
private MyEnum maxLifesteal;
...
public MyEnum getAvgReflection {
return this.avgReflection;
}
Und so weiter.
Jetzt könnten Sie Ihre Enums doppelte Werte zurückgeben, aber diese Werte sind statisch. Ich glaube nicht, dass Sie sich Gedanken über statische Werte machen, sondern vielleicht eine statische Menge von Werten.
Sie haben dann zwei Möglichkeiten: deklarieren alle möglichen Parameter wie Felder oder ein Aggregatfeld erstellen, um alle Werte zu halten und dann eine Enum als Index verwenden:
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()];
}
Die beiden Einschränkungen auf einem Array (Angenommen, Sie möchten primitive Werte, und Sie sind um die Leistung besorgt), müssen alle Werte vom selben Typ sein, und die Anzahl der Attribute wird zur Kompilierzeit festgelegt.
Zusätzlich können Sie wollen einfach nur eine Karte < String verwenden, Doppel > oder Karte < MyEnum, Doppel > oder sogar < MyEnum Karte, Objekt >. Ein Kartentyp gibt Ihnen die Möglichkeit, einen Satz mit einer dynamischen Größe beizubehalten und möglicherweise auch mehrere Typen zu halten (mit dem kostspieligen Aufwand, Ihre Werte zu konvertieren).
Sie sollten Ihre Entscheidung auf die Anzahl der Attribute, die Sie zu halten, die Art von Overhead, die Sie bereit sind zu tolerieren, und Ihren Stil basieren.
Vielen Dank! Alle von ihnen sind numerische Werte, und ich sehe nicht, dass neue bald hinzugefügt werden; für die Überlieferung und den Rest, ich denke, ich wäre besser, eine getrennte Getter – AscendedKitten
gut eine ganze Zahl ist perfekt darstellbar als eine "Doppel", so würde es kein Problem sein – Moira