Zuerst entschuldigen Sie den Zustand dieses Titels, ich weiß nicht, was die Frage ist, die ich eigentlich stelle, was bedeutet, dass ich die richtige Terminologie nicht kenne wenn jemand mir sagen könnte, dass ich glücklich wäre, den Titel zu ändern oder zu löschen und neu zu veröffentlichen.Eine elegantere Art, ein Objekt basierend auf anderen Werten einzurichten
Also gerade in einem Projekt, das ich tue, muss ich ein Objekt von Werten aufstellen, die Tatsache ignorieren, dass es ein realmObject ist, spielt keine Rolle.
public class Skills extends RealmObject {
private boolean acrobaticsMarked = false;
private int acrobaticsValue;
private final String acrobaticsAbility = "DEX";
private boolean animalHealingMarked = false;
private int animalHealingValue;
private final String animalHealingAbility = "WIS";
private boolean arcanaMarked = false;
private int arcanaValue;
private final String arcanaAbility = "INT";
private boolean athleticsMarked = false;
private int athleticsValue;
private final String athleticsAbility = "STR";
private boolean deceptionMarked = false;
private int deceptionValue;
private final String deceptionAbility = "CHA";
private boolean historyMarked = false;
private int historyValue;
private final String historyAbility = "INT";
private boolean insightMaarked = false;
private int insightValue;
private final String insightAbility = "WIS";
private boolean intimidationMarked = false;
private int intimidationValue;
private final String intimidationAbility = "CHA";
private boolean investigationMarked = false;
private int investigationValue;
private final String investigationAbility = "INT";
private boolean medicineMarked = false;
private int medicineValue;
private final String medicineAbility = "WIS";
private boolean natureMarked = false;
private int natureValue;
private final String natureAbility = "INT";
private boolean perceptionMarked = false;
private int perceptionValue;
private final String perceptionAbility = "WIS";
private boolean performanceMarked = false;
private int performanceValue;
private final String performanceAbility = "CHA";
private boolean persuasionMarked = false;
private int persuasionValue;
private final String persuasionAbility = "CHA";
private boolean religionMarked = false;
private int religionValue;
private final String religionAbility = "INT";
private boolean sleightOfHandMarked = false;
private int sleightOfHandValue;
private final String sleightOfHandAbility = "DEX";
private boolean stealthMarked = false;
private int stealthValue;
private final String stealthAbility = "DEX";
private boolean survivalMarked = false;
private int survivalValue;
private final String survivalAbility = "WIS";
Wie Sie STR, DEX eine Fähigkeit Wert jeder von ihnen haben sehen können, CON, INT, WIS, CHA. Ja, es ist D & D. Also diese Werte wurden in einer anderen Klasse eingerichtet. Ich werde nicht die ganze Klasse einfügen you can go find it here, aber es hat die folgenden Werte, die an diesem Punkt bereits ausgefüllt werden.
int strength;
int dexterity;
int constitution;
int intelligence;
int wisdom;
int charisma;
Derzeit Ich gründe die Werte wie diese
public void setValues(Abilities abilities) {
this.setAcrobaticsValue(abilities.getDexterity());
this.setAnimalHealingValue(abilities.getWisdom());
this.setArcanaValue(abilities.getIntelligence());
this.setAthleticsValue(abilities.getStrength());
this.setDeceptionValue(abilities.getCharisma());
this.setHistoryValue(abilities.getIntelligence());
this.setInsightValue(abilities.getWisdom());
this.setIntimidationValue(abilities.getCharisma());
this.setInvestigationValue(abilities.getIntelligence());
this.setMedicineValue(abilities.getWisdom());
this.setNatureValue(abilities.getIntelligence());
this.setPerceptionValue(abilities.getWisdom());
this.setPerformanceValue(abilities.getCharisma());
this.setPersuasionValue(abilities.getCharisma());
this.setReligionValue(abilities.getIntelligence());
this.setSleightOfHandValue(abilities.getDexterity());
this.setStealthValue(abilities.getDexterity());
this.setSurvivalValue(abilities.getWisdom());
}
Ich möchte wissen, ob es eine elegantere Art und Weise ist diese Klasse Zeile für Zeile zu laufen, so wird es erst durch jede der Klassen Werte int und lese jeweils die Fähigkeits-Werte der Klasse in der Skills-Klasse und setze den Skills-Wert, indem du den angegebenen String aus den Fähigkeiten abrufst. z.B. Nach dem Lesen, dass acrobaticsAbility gleich DEX ist, geht es und ruft den Dexterity-Wert ab.
Optionen gehören - 1) Setzen Sie die Fähigkeiten Klasse nicht kopieren. Referenzieren Sie es einfach. 2) Benutze eine Karte von der Fähigkeit enum zum Wert. Kopieren Sie einfach die Karte. –