Java直接輸出對(duì)象變成@.....的問(wèn)題及解決
Java直接輸出對(duì)象變成@.....問(wèn)題
為什么我用System.out.println()輸出一個(gè)對(duì)象會(huì)變成@.......的
例如 object.student@1d8d30f7
原因在此
(假設(shè)我的對(duì)象名是student s =new student ();)
1.以下代碼就是System.out.println(),中println,Java的底層代碼
public void println(Object x) {
String s = String.valueOf(x);可以發(fā)現(xiàn)出現(xiàn)了個(gè)String.valueOf(x),這個(gè)x此時(shí)就等于s也就等于new student ()
2.valueOf(x)的底層源碼就是下圖
public static String valueOf(Object obj) {
return (obj == null) ? "null" : obj.toString();
}這個(gè)obj就等于=x=s=new student(),此時(shí)return (obj == null) ? "null" : obj.toString();
運(yùn)用了三元運(yùn)算符,因?yàn)閛bj不等于null,所以直接執(zhí)行了表達(dá)式三,也就是obj.toString()。
3.toString()的底層源碼是
public String toString() {
return getClass().getName() + "@" + Integer.toHexString(hashCode());
}這個(gè)方法里面只有
return getClass().getName() + "@" + Integer.toHexString(hashCode());
所以在你的控制臺(tái)里面出現(xiàn)了 @.....什么的
至于為什么,是因?yàn)樵诶^承里面有個(gè)最終類也就是object,所有的類都直接或者間接繼承自object,你在你的類里面沒(méi)有寫toString,他就會(huì)默認(rèn)執(zhí)行object里面的指定代碼
所以.....在你的類里面加個(gè)toString方法就好了 ,也就是在被實(shí)例化的那個(gè)類,在我這篇文章里面是student
解決辦法
.eclipse的快捷鍵是 shift+alt+s
在student里面 按下 shift+alt+s 倒數(shù)第四個(gè),選擇需要的變量,點(diǎn)擊生成,像下圖一樣,然后就去執(zhí)行下main方法就好了


總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
使用lombok@Data存在extends時(shí)需要注意的問(wèn)題
在Java編程中,正確實(shí)現(xiàn)equals方法是保證對(duì)象比較一致性的關(guān)鍵,使用instanceof檢查類型可能導(dǎo)致違反對(duì)稱性原則,即當(dāng)子類和父類都重寫equals時(shí)可能出現(xiàn)a.equals(b)不等于b.equals(a)的情況,Lombok的@EqualsAndHashCode注解可以通過(guò)callSuper=true參數(shù)2024-10-10
使用Java代碼來(lái)比較Android客戶端版本號(hào)
這篇文章主要介紹了使用Java代碼來(lái)比較Android客戶端版本號(hào),Java是目前安卓程序唯一的開發(fā)語(yǔ)言,需要的朋友可以參考下2015-07-07
mybatis foreach批量插入數(shù)據(jù):Oracle與MySQL區(qū)別介紹
這篇文章主要介紹了,需要的朋友可以參考下2018-01-01
SpringMVC框架post提交數(shù)據(jù)庫(kù)出現(xiàn)亂碼解決方案
這篇文章主要介紹了SpringMVC框架post提交數(shù)據(jù)庫(kù)出現(xiàn)亂碼解決方案,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-09-09
Intellij IDEA使用restclient測(cè)試的教程圖解
這篇文章主要介紹了Intellij IDEA使用restclient測(cè)試的教程圖解,本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-01-01
解析Springboot集成Tile38客戶端之Set命令實(shí)現(xiàn)示例
這篇文章主要為大家介紹了解析Springboot集成Tile38客戶端之Set命令實(shí)現(xiàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-08-08
基于SpringBoot實(shí)現(xiàn)自動(dòng)裝配返回屬性的設(shè)計(jì)思路
這篇文章主要介紹了基于SpringBoot實(shí)現(xiàn)自動(dòng)裝配返回屬性,這里涉及到的技術(shù)知識(shí)點(diǎn)有注解解析器,為什么用ResponseBodyAdvice這里解析?不在Filter,Interceptors,本文結(jié)合示例代碼給大家介紹的非常詳細(xì),需要的朋友參考下吧2022-03-03

