toString() 方法
toString() 方法用于通过使用对象的内容来创建对象的 String 表示。编写类时应该重写此方法。当 "hello " + anObject 中的对象连接到字符串时,会隐式调用 toString()。
考虑以下:
public class User {
private String firstName;
private String lastName;
public User(String firstName, String lastName) {
this.firstName = firstName;
this.lastName = lastName;
}
@Override
public String toString() {
return firstName + " " + lastName;
}
public static void main(String[] args) {
User user = new User("John", "Doe");
System.out.println(user.toString()); // Prints "John Doe"
}
}
来自 Object 类的 toString() 在 User 类中被覆盖,以在打印时提供有关对象的有意义的数据。
使用 println() 时,隐式调用对象的 toString() 方法。因此,这些陈述做同样的事情:
System.out.println(user); // toString() is implicitly called on `user`
System.out.println(user.toString());
如果在上面提到的 User 类中没有覆盖 toString(),System.out.println(user) 可能会返回 User@659e0bfd 或类似的 String,除了类名之外几乎没有任何有用的信息。这将是因为调用将使用基本 Java Object 类的 toString() 实现,该类对 User 类的结构或业务规则一无所知。如果要在类中更改此功能,只需覆盖该方法即可。