I am trying to make a list of new objects within that object's class using Arrays.asList(), but for some reason I cannot understand why is that. Can someone explain me the reason ? There is no issue when the method is called to get a list in main, but there is something with it.(Here is the code and error message I get):`
public class Poacher extends Enemy {
private final List<Poacher> poacherForBattleLvl1 = Arrays.asList(
new Poacher("PoacherLvl1.1", 10, 1, 4),
new Poacher("PoacherLvl1.2", 11, 1, 5),
new Poacher("PoacherLvl1.3", 12, 1, 6),
new Poacher("PoacherLvl1.4", 14, 1, 12),
new Poacher("PoacherLvl1.5", 15, 1, 13)
);
private Poacher(String name, int health, int level, int gold) { }
public List<Poacher> getPoachersByLevel(int level) {
return switch (level) {
case 1 -> this.poacherForBattleLvl1;
case 2 -> this.poacherForBattleLvl2;
case 3 -> this.poacherForBattleLvl3;
default -> null;
};
}
}
Error message:
Exception in thread "main" java.lang.StackOverflowError
at gazi.university.Enemy_SubClasses.Poacher.<init>(Poacher.java:11)
at gazi.university.Enemy_SubClasses.Poacher.<init>(Poacher.java:11)
at gazi.university.Enemy_SubClasses.Poacher.<init>(Poacher.java:11)
at gazi.university.Enemy_SubClasses.Poacher.<init>(Poacher.java:11)
at gazi.university.Enemy_SubClasses.Poacher.<init>(Poacher.java:11)
at gazi.university.Enemy_SubClasses.Poacher.<init>(Poacher.java:11)
at gazi.university.Enemy_SubClasses.Poacher.<init>(Poacher.java:11)
at gazi.university.Enemy_SubClasses.Poacher.<init>(Poacher.java:11)
at gazi.university.Enemy_SubClasses.Poacher.<init>(Poacher.java:11)
....