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
類的結構或業務規則一無所知。如果要在類中更改此功能,只需覆蓋該方法即可。