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
类的结构或业务规则一无所知。如果要在类中更改此功能,只需覆盖该方法即可。