Próbuję przekazać wynik funkcji whoFirst() do zmiennej wonWarrior, a następnie do funkcji hitPower().
Gdy przypisuję coś do wonWarrior mam taki błąd:
Exception in thread "main" java.lang.StackOverflowError
at pl.killers.engine.Battle.<init>(Battle.java:26)
at pl.killers.engine.Battle.<init>(Battle.java:26)
...
public class Battle {
ICreature firstWarrior;
ICreature secondWarrior;
public Battle(ICreature firstWarrior, ICreature secondWarrior) {
this.firstWarrior = firstWarrior;
this.secondWarrior = secondWarrior;
}
public ICreature whoFirst(Battle battle) {
if(battle.firstWarrior.getSpeed() > battle.secondWarrior.getSpeed()) {
return battle.firstWarrior;
} else {
return battle.secondWarrior;
}
}
ICreature wonWarrior; //= whoFirst(new Battle(this.firstWarrior, this.secondWarrior));
public double hitPower() {
return wonWarrior.getStrength();
}
}
main:
public class Killers {
public static void main (String[] args) {
ICreature cow = new Cow("Deniro");
ICreature cat = new Cat("Puncio");
Battle battle = new Battle(cow, cat);
System.out.println("kto zaczyna: " + battle.whoFirst(battle).getName());
}
}
battle
i używajthis
ShalomShalom