В дополнение к причинам, приведенным в других ответах, я столкнулся с тем, что, если мой регистратор не был ни статическим, ни окончательным:
...
public Logger logger = LoggerFactory.getLogger(DataSummary.class);
public String toJson() {
GsonBuilder gsonBuilder = new GsonBuilder();
return gsonBuilder.create().toJsonTree(this).toString();
}
...
в некоторых случаях (когда я использовал библиотеку Gson)Я бы получил исключение stackoverflow.Моя конкретная ситуация заключалась в создании экземпляра класса, содержащего нестатический не финальный логгер.Затем вызовите метод toJson, который вызвал GsonBuilder:
...
DataSummary ds = new DataSummary(data);
System.out.println(ds.toJson());
...