📅  最后修改于: 2023-12-03 15:01:49.624000             🧑  作者: Mango
在Java中,每个对象都有toString()方法。在默认情况下,toString()方法返回一个字符串,包含对象的类名和一个哈希码的无符号十六进制表示。
但是,在实际开发中,我们可能需要在toString()方法中返回更丰富的信息,以便更好地理解和调试代码。本文将介绍如何修改toString()方法的修饰符,并提供一些示例说明如何编写实用的toString()方法。
toString()方法的修饰符通常是public,因为它是一个公共方法,可以从任何地方访问。如果你不想让继承该类的子类覆盖toString()方法,则可以使用final关键字。
下面是一个public final的toString()方法示例:
public final String toString() {
return "Person [name=" + name + ", age=" + age + ", address=" + address + "]";
}
下面是一些例子,说明如何编写更实用的toString()方法。
默认实现返回对象的哈希码,但这并不是通常需要的数据。下面是一个更有用的toString()方法示例:
public String toString() {
return "Person [name=" + name + ", age=" + age + ", address=" + address + "]";
}
数组对象默认的toString()方法返回一个字符串,格式为类名+哈希码。但是,我们可能需要打印数组中的所有元素,如下所示:
public String toString() {
return Arrays.toString(values);
}
假设我们有一个Order对象,它有一个Customer对象和多个OrderItem对象。我们希望在toString()方法中打印这个Order对象及其所包含的所有对象,如下所示:
public String toString() {
StringBuilder sb = new StringBuilder();
sb.append("Order [id=" + id);
sb.append(", customer=" + customer);
sb.append(", orderItems=[");
for (OrderItem item : orderItems) {
sb.append(item + ", ");
}
sb.delete(sb.length() - 2, sb.length());
sb.append("]]");
return sb.toString();
}
toString()方法是一个非常有用的工具,可以帮助开发人员快速调试代码。 通过覆盖默认实现,并打印更有用的信息,可以减少调试时间并提高代码质量。