【问题标题】:Java force Object::toStringJava 强制对象::toString
【发布时间】:2019-05-27 22:48:44
【问题描述】:

在这个问题的一个 cmets 中提到了这一点: Force invocation of base class method 想知道是否有一种方法可以强制使用 Object.toString 而不是 MyClass.toString。只希望它用于调试日志(想查看一个库是创建多个对象还是重复使用同一个对象)。例如类似的东西

myObject.Object::toString()

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

【问题讨论】:

    标签: java


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      不,据我所知,在 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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-11-20
        • 1970-01-01
        • 2018-10-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-05-24
        相关资源
        最近更新 更多