V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
ndht97
V2EX  ›  Java

为什么向 ArrayList 中添加了几个对象,直接打印列表后结果是对象地址呢?怎么显示内容

  •  
  •   ndht97 · Aug 3, 2018 · 4949 views
    This topic created in 2824 days ago, the information mentioned may be changed or developed.
    10 replies    2018-08-06 13:27:56 +08:00
    cyhou
        1
    cyhou  
       Aug 3, 2018   ❤️ 1
    overwrite toString
    ming2050
        2
    ming2050  
       Aug 3, 2018 via iPhone
    toJson
    ndht97
        3
    ndht97  
    OP
       Aug 3, 2018
    @mringg 没有学到这个,但是谢谢你
    ndht97
        4
    ndht97  
    OP
       Aug 3, 2018
    @cyhou 谢谢,搞定了
    ClutchBear
        5
    ClutchBear  
       Aug 3, 2018   ❤️ 2
    定义类的时候,
    重写 toString 方法。
    idea 用快捷键自动重写。
    sxd96
        6
    sxd96  
       Aug 4, 2018   ❤️ 4
    上面已经有人跟你说过重写 toString 了。
    但是之前看到打印出来的那一串十六进制数,并不是对象的地址。
    Object 类的 toString 是调用了 hashCode()方法得到了对象的一个哈希值,而不是对象的地址。
    更多的内容有一篇博客,或者大部分 java 书籍里相应章节都有的
    https://www.cnblogs.com/xudong07/p/9055288.html
    ndht97
        7
    ndht97  
    OP
       Aug 4, 2018
    @sxd96 感谢纠正,又了解了一点,哈哈
    sharkv
        8
    sharkv  
       Aug 4, 2018
    你查看 System.out.println(Object o)方法;源码调用的是 o.toString()。 后面的同上所述,需要重写 toString()
    mmdsun
        9
    mmdsun  
       Aug 5, 2018 via Android
    @sxd96 那 java 怎么打印对象地址?
    sxd96
        10
    sxd96  
       Aug 6, 2018
    @mmdsun 我也是在学习中,目前所知,java 是得不到对象地址的,你能得到的只有对象的引用。而且 java 中对象在堆中的地址不是固定不变的,大部分 GC 都会移动对象,这时候对象就被移动到另外的地址上了,就算我们得到了对象的地址也没有什么意义。
    如果你在网上搜到相关解答可以 @我下,互相学习。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   5875 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 44ms · UTC 01:53 · PVG 09:53 · LAX 18:53 · JFK 21:53
    ♥ Do have faith in what you're doing.