📅  最后修改于: 2023-12-03 15:31:58.181000             🧑  作者: Mango
在Java中,toString()方法是一个非常有用的方法,它可以返回一个对象的字符串表示形式。如果没有定义toString()方法,Java会默认返回一个包含对象类名及Hash code的字符串。
但是,有时我们需要更详细的对象描述,而且Java中的toString()方法可以很容易地满足这个需求。有时,我们需要为不同的对象类型定义不同的toString()方法。
在Java中,调用一个对象的toString()方法就可以获得它的字符串表示形式。以下是一个示例:
public class Person {
private String name;
private int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
@Override
public String toString() {
return "Person{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
}
在这个示例中,我们重写了Object类的toString()方法来返回一个Person对象的字符串表示形式。
现在,我们可以在其他地方调用toString()方法来获取它的字符串表示形式:
Person p = new Person("John", 30);
System.out.println(p.toString());
// 输出:Person{name='John', age=30}
在这个例子中,我们看到toString()方法返回了一个包含对象的属性值的字符串。这使我们能够快速查看一个对象的属性。
另一种常见的方法是使用一个即时toString()方法,这个方法不需要重写任何方法,只需要在需要时定义即可。即时toString()通常用于打印日志或调试信息。
以下是一个使用即时toString()方法的示例:
public class Book {
private String title;
private String author;
public Book(String title, String author) {
this.title = title;
this.author = author;
}
public String getAuthor() {
return author;
}
public String getTitle() {
return title;
}
public String toString() {
return "Book{" +
"title='" + title + '\'' +
", author='" + author + '\'' +
'}';
}
public String toLogString() {
return "[Book] Title: " + title + ", Author: " + author;
}
}
在这个例子中,我们定义了一个toLogString()方法,它将返回一个类似于日志记录的字符串表示形式。
现在,在需要打印日志时,我们可以使用toLogString()方法:
Book b = new Book("Effective Java", "Joshua Bloch");
logger.debug(b.toLogString());
// 输出:[Book] Title: Effective Java, Author: Joshua Bloch
我们可以看到,toLogString()方法返回一个包含对象信息的字符串,这在调试和日志记录时非常有用。
在Java中,toString()方法是一个强大的工具,用于将对象转换为字符串表示形式。我们可以使用重写的toString()方法或即时toString()方法来定义对象的字符串表示形式。这个方法可以很好地用于调试和日志记录。