Название многословное и, возможно, запутанное, но я не уверен, как сделать его лучше... Я хочу иметь доступ к значениям в моем списке массивов и распечатывать их.
У меня есть интерфейс под названием ThingBagInterface. Этот ThingBagInterface имеет только один метод и выглядит следующим образом:
interface ThingBagInterface {
public String getType();
}
Теперь у меня есть класс под названием ThingBag, это сумка, в которой хранится куча разных вещей, таких как существа, здания и т. д.
В моем классе ThingBag я инициализировал все свои существа следующим образом:
public void initCreatures(){
waterSnake = new Creature("Water Snake", Terrain.SWAMP, false, false, false, false, 1, 0);
etc...
}
а затем у меня есть функция populateBag(), которая выглядит так:
public void populateBag(){
initCreatures();
bag.add(bears);
}
Мое определение списка массивов находится в ThingBag и выглядит так:
ArrayList<ThingBagInterface> bag = new ArrayList<ThingBagInterface>();
Конструктор My Creature выглядит так:
public Creature(String n, Terrain startTerrain, boolean flying, boolean magic, boolean charge, boolean ranged, int combat, int o){
name = n;
flyingCreature = flying;
magicCreature = magic;
canCharge = charge;
rangedCombat = ranged;
combatValue = combat;
owned = o;
}
Я хочу распечатать имя медведя.
Итак, в основном я делаю это:
ThingBag tb = new ThingBag();
tb.populateBag();
for(int i= 0; i<tb.bag.size(); i++){
System.out.println(i+". "+tb.bag.get(i));
}
Почему я не могу получить доступ к имени в моей сумке? Если бы я не использовал интерфейс, я мог бы сказать:
System.out.println(i+". "+tb.bag.get(i).name)
Но я не могу сейчас. Любые идеи о том, как я могу получить доступ к этому значению? Теперь я могу получить доступ только к адресам памяти...