您的位置:首页 > 其它

提防toString递归问题

2014-05-15 12:58 120 查看
看这个代码:

public class D
{
@Override
public String toString()
{
return "obj:"+this;
}
public static void main(String[] args)
{
System.out.println(new D());
}
}

貌似很正常,但是这个代码是错误的,this会重复递归调用toString,最终抛出栈溢出异常:

Exception in thread "main" java.lang.StackOverflowError
at java.lang.AbstractStringBuilder.ensureCapacityInternal(AbstractStringBuilder.java:113)
at java.lang.AbstractStringBuilder.append(AbstractStringBuilder.java:415)
...

应该返回super.toString().
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: