При запуске программы появляется ошибка:
Exception in thread "main" java.lang.StackOverflowError
at Animal.<init>(Animal.java:54)
at AnimalState.<init>(AnimalState.java:13)
at Animal.<init>(Animal.java:54)
at AnimalState.<init>(AnimalState.java:13)
at Animal.<init>(Animal.java:54)...
Как можно устранить эту ошибку?
Главный класс
import java.time.Duration;
public class Save{
public static void main(String[] args){
Animal cat = new Animal();
}
Класс Animal
import java.time.Duration;
public class Animal
{
public static int hoursSinceLastMeal = 3;
public static int energyPercent = 87;
public static int age = 7;
public static boolean isProliferating = false;
public static boolean isFeedingNewborns = true;
public static int weight = 3;
public int getId() {
return hashCode();
}
public Animal() {
new AnimalState( hoursSinceLastMeal, energyPercent, age, isProliferating, isFeedingNewborns, weight );
}
}
Класс AnimalState
import java.time.Duration;
import java.util.*;
public class AnimalState extends Animal {
public int hoursSinceLastMeal;
public int energyPercent;
public int age;
public boolean isProliferating;
public boolean isFeedingNewborns;
public int weight;
public AnimalState( int hoursSinceLastMeal, int energyPercent, int age,
boolean isProliferating, boolean isFeedingNewborns, int weight){
this.hoursSinceLastMeal = hoursSinceLastMeal;
this.energyPercent = energyPercent;
this.age = age;
this.isProliferating = isProliferating;
this.isFeedingNewborns = isFeedingNewborns;
this.weight = weight;
System.out.println(String.format("%s %s %s %s %s %s",
hoursSinceLastMeal, energyPercent, age, isProliferating,
isFeedingNewborns, weight));
}
}
Ты когда создаешь инстанс Animal, у тебя создается инстанс AnimalState(где опять же создается инстанс Animal, так как неявно вызывается конструктор базового класса), отсюда происходит зацикливание и стек вызовов переполняется.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Ошибка появляется когда удаляю item из 0 позиции, если из других позиций удалять, то все окПрогуглил, прочитал что это ошибка в самом RecyclerView
Делаю чат с помощью FirebaseВозникла проблема с датой и временем