`
程言方
  • 浏览: 47979 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

使用toString方法打印容器中对象的地址时产生的递归异常

    博客分类:
  • java
阅读更多
直接上代码【来自《java编程思想》】:

package 无意识的递归;

import java.util.ArrayList;
import java.util.List;

//可以对容器类使用tostring()方法,但是想要打印出容器中每个对象的时候,就要使用this关键字,在这里就会产生意想不到的递归
public class InfinitiRecursion {
public String toString(){
//这时候就会产生异常,因为在‘+’后面是this,就会递归调用该对象的toString方法,产生了异常!
//return "InfinitiRecursion address:"+this+"/n";
//要想修复此方法,就要调用object.toString 方法!如下所示!
return "InfinitiRecursion address:"+super.toString()+"\n";
}
public static void main(String []args){
List<InfinitiRecursion> list=new ArrayList<InfinitiRecursion>();
for(int i=0;i<5;i++){
list.add(new InfinitiRecursion());
}
System.out.println(list);
}

}
分享到:
评论

相关推荐

    个人笔记--JAVA基础

    Java API文档是Java开发者的重要资源,提供了所有Java标准库的详细说明,包括类、接口、枚举和异常等的使用方法。 **1.7. 集成开发工具** - **1.7.1. 常用的集成开发工具** - Eclipse - IntelliJ IDEA - ...

    疯狂JAVA讲义

    6.2.1 打印对象和toString方法 170 6.2.2 ==和equals比较运算符 172 6.3 类成员 175 6.3.1 理解类成员 175 6.3.2 单例(Singleton)类 176 6.4 final修饰符 177 6.4.1 final变量 177 6.4.2 final方法 181 ...

    黑马程序员入学Java知识

    - 在方法签名中声明可能抛出的异常类型。 6. **throw** - 显式地抛出异常。 7. **常用类** - String:字符串操作。 - StringBuilder/StringBuffer:构建字符串。 - Math:数学运算。 - Random:随机数生成。...

    Java面试题以及答案

    写clone()方法时,通常都有一行代码,是什么? - 通常会有一行`super.clone();`代码,这是为了调用父类的`clone()`方法。 #### 43. JAVA语言如何进行异常处理,关键字:throws, throw, try, catch, finally分别...

    java初级知识

    在一个方法中,可以先抛出异常,然后在另一个方法中捕获它。 **9. 常用类** Java标准库提供了许多有用的类,如`String`, `ArrayList`, `HashMap`等。 **10. String方法** `String`类提供了大量方法,如`length()`,...

    黑马程序员入学Java精华总结

    - 使用String类提供的`valueOf()`方法或基本类型的`toString()`方法进行转换。 4. **Object类** - Object是所有Java类的根类,提供了一些基本方法。 5. **代码块** - 代码块用于初始化对象的某些部分。 6. **...

    java源码包---java 源码 大量 实例

     在对象创建的过程中将被容器调用,onMessage函数方法接收消息参数,将其强制转型为合适的消息类型,同时打印出消息的内容。同时一个mail note将被发送给消息发送者,发送一个e-mail通知给由recipient参数确定的e-...

    java源码包2

     在对象创建的过程中将被容器调用,onMessage函数方法接收消息参数,将其强制转型为合适的消息类型,同时打印出消息的内容。同时一个mail note将被发送给消息发送者,发送一个e-mail通知给由recipient参数确定的e-...

    java源码包3

     在对象创建的过程中将被容器调用,onMessage函数方法接收消息参数,将其强制转型为合适的消息类型,同时打印出消息的内容。同时一个mail note将被发送给消息发送者,发送一个e-mail通知给由recipient参数确定的e-...

    java源码包4

     在对象创建的过程中将被容器调用,onMessage函数方法接收消息参数,将其强制转型为合适的消息类型,同时打印出消息的内容。同时一个mail note将被发送给消息发送者,发送一个e-mail通知给由recipient参数确定的e-...

    成百上千个Java 源码DEMO 4(1-4是独立压缩包)

    消息驱动Bean必须实现两个接口MessageDrivenBean和MessageListener 在对象创建的过程中将被容器调用,onMessage函数方法接收消息参数,将其强制转型为合适的消息类型,同时打印出消息的内容。同时一个mail note将被...

    成百上千个Java 源码DEMO 3(1-4是独立压缩包)

    消息驱动Bean必须实现两个接口MessageDrivenBean和MessageListener 在对象创建的过程中将被容器调用,onMessage函数方法接收消息参数,将其强制转型为合适的消息类型,同时打印出消息的内容。同时一个mail note将被...

    javascript入门笔记

    2、使用浏览器中的内核(JS解释引擎) 1、在浏览器的控制台(Console)中,输入脚本并执行 2、将JS脚本代码嵌入在HTML页面中执行 1、采用HTML元素事件执行JS代码 事件 : 1、onclick 当元素被点击时执行的操作 ...

    freemarker总结

    在表达式中使用算术运算符时要注意以下几点: 1,运算符两边的运算数字必须是数字 2,使用+运算符时,如果一边是数字,一边是字符串,就会自动将数字转换为字符串再连接,如:${3 + "5"},结果是:35 使用内建的int函数可...

Global site tag (gtag.js) - Google Analytics