I'm a little confused between an ArrayList and an Array, I understand what a variable is but I don't understand why I can't convert the ArrayList to an Array and have the same effect.
This piece of code I currently have when using an ArrayList
import java.util.Objects;
import com.google.gson.Gson;
import com.google.gson.JsonObject;
public final class NpcDefinitionLoader extends JsonLoader {
/**
* Creates a new {@link NpcDefinitionLoader}.
*/
public NpcDefinitionLoader() {
super(DefinitionEditor.fileChooser.getSelectedFile().getAbsolutePath());
}
@Override
public void load(JsonObject reader, Gson builder) {
int index = reader.get("id").getAsInt();
String name = Objects.requireNonNull(reader.get("name").getAsString());
String description = Objects.requireNonNull(reader.get("examine").getAsString());
int combatLevel = reader.get("combat").getAsInt();
int size = reader.get("size").getAsInt();
boolean attackable = reader.get("attackable").getAsBoolean();
boolean aggressive = reader.get("aggressive").getAsBoolean();
boolean retreats = reader.get("retreats").getAsBoolean();
boolean poisonous = reader.get("poisonous").getAsBoolean();
int respawnTime = reader.get("respawn").getAsInt();
int maxHit = reader.get("maxHit").getAsInt();
int hitpoints = reader.get("hitpoints").getAsInt();
int attackSpeed = reader.get("attackSpeed").getAsInt();
int attackAnim = reader.get("attackAnim").getAsInt();
int defenceAnim = reader.get("defenceAnim").getAsInt();
int deathAnim = reader.get("deathAnim").getAsInt();
int attackBonus = reader.get("attackBonus").getAsInt();
int meleeDefence = reader.get("defenceMelee").getAsInt();
int rangedDefence = reader.get("defenceRange").getAsInt();
int magicDefence = reader.get("defenceMage").getAsInt();
NPCDefinitions.definitions.get(index) = new NPCDefinitions(index, name, description, combatLevel, size, attackable, aggressive, retreats,
poisonous, respawnTime, maxHit, hitpoints, attackSpeed, attackAnim, defenceAnim, deathAnim, attackBonus, meleeDefence,
rangedDefence, magicDefence);
}
}
I get an error here
NPCDefinitions.definitions.get(index) = new NPCDefinitions(index, name, description, combatLevel, size, attackable, aggressive, retreats,
poisonous, respawnTime, maxHit, hitpoints, attackSpeed, attackAnim, defenceAnim, deathAnim, attackBonus, meleeDefence,
rangedDefence, magicDefence);
Saying the left side must be a variable. When I use an Array like this
NPCDefinitions.definitions[index] = new NPCDefinitions(index, name, description, combatLevel, size, attackable, aggressive, retreats,
poisonous, respawnTime, maxHit, hitpoints, attackSpeed, attackAnim, defenceAnim, deathAnim, attackBonus, meleeDefence,
rangedDefence, magicDefence);
Code works perfect.
I'm confused about this, how would I make this work by using an ArrayList?
Aucun commentaire:
Enregistrer un commentaire