📜  Java中的即时 toString() 方法和示例(1)

📅  最后修改于: 2023-12-03 15:31:58.181000             🧑  作者: Mango

Java中的即时 toString() 方法和示例

在Java中,toString()方法是一个非常有用的方法,它可以返回一个对象的字符串表示形式。如果没有定义toString()方法,Java会默认返回一个包含对象类名及Hash code的字符串。

但是,有时我们需要更详细的对象描述,而且Java中的toString()方法可以很容易地满足这个需求。有时,我们需要为不同的对象类型定义不同的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()通常用于打印日志或调试信息。

以下是一个使用即时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()方法来定义对象的字符串表示形式。这个方法可以很好地用于调试和日志记录。