iT邦幫忙

0

java print object 一問

  • 分享至 

  • xImage

大家好,

請問一下如果在java 要print object 的key value 是怎樣寫,

TextDB db = new TextDB("DB/HKAWS.data", true);

因為直接用System.out.println(db); 會出現TextDB@671a4c51

pico2k iT邦新手 5 級 ‧ 2022-04-19 13:13:50 檢舉
1. 使用Reflection
2. 自己寫 (ex. println("XXX,+db.getXXX() ))
theRookie iT邦新手 1 級 ‧ 2022-04-19 21:27:39 檢舉
复写TextDB的toString
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

1
theRookie
iT邦新手 1 級 ‧ 2022-04-19 21:34:19
最佳解答

複寫toString這個方法,IDE一般都有自動生成
代碼如下,建構子我用lombok可以無視

import lombok.AllArgsConstructor;

public class TestObj {
    public static void main(String[] args) {
        TextDB t1 = new TextDB("test1",true);
        System.out.println("沒複寫toString:"+t1);
        //沒複寫toString:TestObj$TextDB@77afea7d

        
        TextDBToString t2 = new TextDBToString("test2",true);
        System.out.println("複寫toString:"+t2);
        //複寫toString:TextDBToString{s1='test2', f1=true}
    }


    @AllArgsConstructor
    private static class TextDB {
        private String s1;
        private Boolean f1;
    }

    @AllArgsConstructor
    private static class TextDBToString {
        private String s1;
        private Boolean f1;

        @Override
        public String toString() {
            return "TextDBToString{" +
                    "s1='" + s1 + '\'' +
                    ", f1=" + f1 +
                    '}';
        }
    }
}

我要發表回答

立即登入回答