Java force Object::toString


这个问题

的一条评论中提到了这一点:强制调用基类方法想知道是否有办法强制使用Object.toString而不是MyClass.toString。只需要它来调试日志(想要查看库是否正在创建多个对象或重用同一个对象(。例如,类似的东西

myObject.Object::toString()

这很容易做到吗?我们正在使用 java8

不,这不容易做到。但没有必要。如果需要默认toString()方法打印的十六进制数,请调用 System.identityHashCode()

不,据我所知,在 java 中这是不可能的。但是,有一些解决方法:

解决方法 1:

class MyObject {
   public String toString() {
       return super.toString() + <whatever_of_my_object>;
   }
}

解决方法 2:

class MyObject {
      public String toIdentityString() { // this is your custom function you can call it foo 
           return super.toString();
      }
}

然后使用 toIdentityString 打印对象的 id

相关内容

最新更新