直接輸出對象引用 System.out.println(obj),控制台顯示 Test2string@de6ced 這類「類名@哈希碼」字符串,而非預期的屬性值。
Java 所有類默認繼承 Object,其 toString() 返回 getClass().getName() + "@" + Integer.toHexString(hashCode())。若未重寫,打印對象調用的就是這個默認實現。
在類中 重寫 toString() 方法:
@Override
public String toString() {
return "Test2string{field1=" + field1 + ", field2=" + field2 + "}";
}
重寫后,System.out.println(obj) 將輸出自定義格式,便于調試與日志記錄。
現代 IDE(IntelliJ IDEA、Eclipse)提供「Generate toString()」快捷生成功能,推薦使用。