toString方法导致的递归调用

原创 2013年12月02日 16:45:00

1. 在toString方法中使用this关键字,导致的递归,见代码:

package string;

public class InfiniteRecursion {
	
	@Override
	public String toString() {
		//this关键字会调用this.toString()方法,产生递归
		//修改为super.toString()
		return "InfiniteRecursion : " + this;  
	}
	
	public static void main(String[] args) {
		InfiniteRecursion ir = new InfiniteRecursion();
		System.out.println(ir.toString());  //Exception in thread "main" java.lang.StackOverflowError
		
	}
	
}
//output
Exception in thread "main" java.lang.StackOverflowError
2. 分析:"InfiniteRecursion : " + this 表示字符串连接,会调用this.toString()方法,产生递归

Java中toString方法作用

C#里面也有个ToString,注意大小写的不同 Java的toString的和C#的ToString完全不是同一概念,首先toString是一个"自我描述"的方法,然后它可以被重写 ...
  • holandstone
  • holandstone
  • 2014年04月09日 10:38
  • 32537

关于String类之toString()方法的细节

Object是所有类的父类,编译器在编译我们的自定义类文件时,会自动将Object类加入到我们的class文件中,toString()是定义在Object中的一个方法,String类是Object的子...
  • jiaobuchong
  • jiaobuchong
  • 2015年07月23日 11:15
  • 5058

关于重写toString方法

关于重写toString
  • zhengwei223
  • zhengwei223
  • 2015年06月27日 20:16
  • 4354

每个Java类都有的toString方法

每个Java类都有的toString方法
  • rocky1996
  • rocky1996
  • 2017年03月11日 10:33
  • 3401

java各种toString方法

java的根类: Object Java代码   /* getClass().getName() + '@' + Integer.toHexString(hashCode())...
  • xjbclz
  • xjbclz
  • 2016年10月23日 21:38
  • 1100

重写toString()方法

学习Java的人都知道,Java所有类都是object的子类。所以,所有的Java对象都可以调用object类提供的方法。其中,toString()就是其中一个。下面讲解一下为什么会有重写toStri...
  • u011209223
  • u011209223
  • 2016年10月09日 09:58
  • 988

Object类及toString方法介绍

一、Object类介绍 Object类在JAVA里面是一个比较特殊的类,JAVA只支持单继承,子类只能从一个父类来继承,如果父类又是从另外一个父类继承过来,那他也只能有一个父类,父类再有父类,那...
  • qq_24892029
  • qq_24892029
  • 2016年05月09日 16:24
  • 4287

Java重写ToString()方法的意义

1、toString()就是是重写,对于一般的对象来说都会有这个方法,其实这个方法的目的,主要就是将对象按字符串的方式输出出来:打个比方,比如一个People类,里边有name,age这两个属性, ...
  • Thinkingcao
  • Thinkingcao
  • 2017年02月13日 10:59
  • 4588

实体类中重写toString()方法便于输出显示和监控调试

实体类UserInf: package net.lc4ever.ldap.ad.test.testToString; public class UserInf { private String u...
  • superit401
  • superit401
  • 2017年04月18日 20:58
  • 1140

为什么toString 方法会自动被调用

先执行下面一段代码: package reusing; //: reusing/Bath.java // Constructor initialization with composition. ...
  • anddyhua
  • anddyhua
  • 2015年01月13日 12:55
  • 4411
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:toString方法导致的递归调用
举报原因:
原因补充:

(最多只允许输入30个字)