首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計疑難解答

Java 物件列印顯示亂碼?重寫 toString() 方法獲取有意義輸出

     編輯:程式設計疑難解答

現象

直接輸出對象引用 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()」快捷生成功能,推薦使用。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved