当您执行时
toString(),您称呼
toString()孩子们的。这里没有问题,只不过您
toString()在这里调用了父对象。这将称呼
toString()孩子,等等。
不错的无限循环。
摆脱它的最好方法是将您的
toString()方法更改为:
@Overridepublic String toString() { return "Category [childCategories=" + childCategories + ", name=" + name + ", parentCategory=" + parentCategory.getName() + "]";}这样,您将不打印parentCategory,而仅显示其名称,不显示无限循环,不显示StackOverflowError。
编辑: 正如博洛在下面说的那样,您将需要检查parentCategory不为null,
NullPointerException如果有则为null
。



