protected char buffer[];
......
@Override
public String toString() {
// Create a copy, don't share the array
String value = new String(this.buffer, 0, count);
if (this.buffer.length <= 1024 * 8) {
bufferLocal.set(new SoftReference<char[]>(this.buffer));
}
this.buffer = null;
return value;
}
这段代码正常执行没什么问题,(前提是调用了toString()后就结束对此对象的使用)但是如果用IDE debug的时候监视当前对象,IDE就会调用toString(),会执行this.buffer = null,当前对象状态就悄无声息的被修改了,我被它坑的调查了半个小时,不知道有没有人曾经跟我同样遭遇,看来还是最好不要在toString修改对象状态,还是增加一个如下方法吧
public String toStringAndClose() {
// Create a copy, don't share the array
String value = new String(buffer, 0, count);
if (buffer.length <= 1024 * 8) {
bufferLocal.set(new SoftReference<char[]>(buffer));
}
buffer = null;
return value;
}
@Override
public String toString() {
// Create a copy, don't share the array
return new String(buffer, 0, count);
}
分享到:
相关推荐
`ToString`方法与日志打印紧密相关,因为当需要在日志中打印对象状态时,通常会调用对象的`toString`方法。 `压缩包子文件的文件名称列表`中的`ToString.java`和`ReflectionToLogStringBuilder.java`是实现这个功能...
在 js 中,toString 方法有三个主要作用:返回一个表示对象的字符串、检测对象的类型和返回该数字对应进制的字符串。 返回一个表示对象的字符串 toString 方法的第一个作用是将对象转换为字符串形式。例如,我们...
这样,在日志中使用`logger.trace()`或`logger.debug()`方法调用`toString()`时,就能详细地显示出这些对象的具体内容,而不会在正常运行时产生额外的性能开销,因为`trace`级别的日志在性能敏感的环境中通常是关闭...
本篇文章将深入探讨几种在Java中实现`toString()`方法的方式,包括自定义、使用`ToStringBuilder`和`ReflectionToStringBuilder`。 首先,自定义`toString()`是最基础的方式。开发者可以根据需求手动编写代码,列出...
在 Java 中,每个对象都是继承自 Object 类的,自然继承了 toString 方法。toString 方法的作用是将对象转换为字符串,以便于输出或其他操作。在使用 System.out.println() 里面输出一个对象的引用时,自动调用 ...
总之,`toString()`方法在Java中扮演着不可或缺的角色,它使得我们可以方便地将对象转换为可读的字符串,这对于调试、日志和用户界面的输出都非常有帮助。当创建新的类时,根据需求重写`toString()`可以提供更丰富的...
在 Java 中,每个对象都有一个 toString 方法,该方法返回对象的字符串表示形式。 toString 方法的定义 在 Java 中,toString 方法是 Object 类中定义的,该方法返回一个字符串,表示对象的类名和它的引用地址。其...
java内常用包,date类,toString的使用方法
在 Java 中,toString() 方法是一个非常重要的方法,它是 Object 类中的一个方法,所有继承自 Object 的类都会继承这个方法。toString() 方法的主要作用是将对象转换为字符串形式,以便于输出或显示。 toString() ...
Java 中的 toString() 方法是 Object 类中的一个方法,用于将对象的信息转换为字符串形式。它是 Java 中一个基本的方法,相信大家都用到过。一般来说,toString() 方法用于以字符串的形式返回对象的相关数据。 ...
在 Java 中,toString() 方法是一个内置方法,用于返回表示 StringBuilder 对象包含的数据的字符串。 toString() 方法的定义 toString() 方法是 StringBuilder 类的内置方法,用于返回表示 StringBuilder 对象包含...
1.自动为指定包下面的所有JAVA 文件书写toString方法代码。 2.自动为指定Class模板类书写toString方法代码。 3.使用该类前最好做备份,编码格式一定要提前设置。
在Java中,我们使用`new`关键字结合类的构造器来创建对象。例如,`Rectangle r1 = new Rectangle(4,40)`创建了一个新的矩形对象,并传入了初始的宽度和高度值。而`r1.setColor("red")`则调用了对象的`setColor`方法...
`toString()`方法是Java中`Object`类的一个成员,它默认返回对象的类名以及在内存中的哈希码,这对于开发者来说往往并不直观。因此,当我们创建一个新类并实例化对象时,如果希望在打印或输出对象时能够得到更有意义...
在 Java 中,每个对象都继承自 Object 类,而 Object 类中定义了两个重要的方法:toString() 和 equals()。这两个方法都是非常重要的,它们分别用于对象的字符串表示和对象比较。然而,在大多数情况下,我们需要重写...
在Java编程中,构造方法、set/get方法以及toString方法是面向对象编程中常见的元素,它们在对象的创建、属性管理及对象表示方面扮演着重要角色。 首先,让我们深入理解构造方法。构造方法是一种特殊的方法,它在...
在 Java 编程语言中,`Boolean.toString()` 方法是一个非常重要的功能,用于将布尔值转换成对应的字符串表示。`Boolean` 类是 `java.lang` 包中的一个类,它提供了许多与布尔值相关的操作,包括将 `boolean` 值转化...
在JavaScript中,`toString`方法是一个内置的方法,用于将对象转换为字符串形式。这个方法对于理解和调试代码至关重要,因为当你尝试打印或输出一个对象时,JavaScript引擎默认会调用该对象的`toString`方法。本篇...
在 Java 中,所有类默认都有一个 toString() 方法,但该方法默认情况下返回的是对象的类名和哈希码,而不是对象的实际信息。例如,在上面的代码中,我们可以看到输出结果为 `[Item@8c9e3a56, Item@d780c206, Item@...