zoukankan      html  css  js  c++  java
  • 重写Object.toString()总结

    定义

    toString()返回对象值的字符串,用于记录类的具体信息

    Object.toString()返回值: className@hashcode

    每一个自己定义的类都尽量重写toString(),方便观察值与获得重要信息

    Java默认调用toString()

    ""+String  调用String.toString()

    System.out.println(x) 自动调用x.toString()将返回值打印

    Logger.global.info(x) 日志中也是打印x.toString()的返回值

    重写toString()

    • getClass().getName()打印类名
    • 打印实例域值

    举例Manager(String sex,int bonus),Person(String name)

    1.Manager未继承Person

        @Override
        public String toString() {
            return getClass().getName()
                    +"[sex="+sex
                    +"bonus="+bonus
                    +"]";
        }

    2.Manager继承Person,调用父类的toString()方法,因为父类已有getClass.getName()方法,所以不需要自己再重写

        @Override
        public String toString() {
            return super.toString()
                    +"[sex="+sex
                    +"bonus="+bonus
                    +"]";
        }

    数组的toString()

    使用Arrays.toString(array) 来打印数组中具体元素的信息

    使用Arrays.deeptoString(array) 来打印多维数组的具体信息

    修改idea自带的toString默认格式

    idea中自带的toString()是直接写死类名,但我们应该调用getClass().getName(),所以要修改它的模板

    在类中按Alt+Insert可插入一些默认的模板方法,其中包括了toString()

    点击setting->Templates->新增+

    然后将原模板复制粘贴,修改为getClass().getName()

    如果想要默认的json页可以参考 https://blog.csdn.net/jlnu_wanglei/article/details/78083707 来实现

  • 相关阅读:
    (void) (&_x == &_y)的作用
    GNU C 与 ANSI C(下)
    GNU C 与 ANSI C(上)
    “多个单核CPU”与“单个多核CPU”哪种方式性能较强?
    ARM 处理器寻址方式之间接寻址的几种表达
    Video for Linux Two API Specification
    UVC 驱动调用过程与驱动框架的简单分析
    线程安全
    合法的立即数的判断
    Redis的Java客户端Jedis
  • 原文地址:https://www.cnblogs.com/ming-szu/p/9158453.html
Copyright © 2011-2022 走看看