• 关于toString()的小细节


    3. toString()方法
    3.1 toString()的使用:
    1. 当我们输出一个对象的引用时,实际上就是调用当前对象的toString()
    *
    * 2. Object类中toString()的定义:
    * public String toString() {
    return getClass().getName() + "@" + Integer.toHexString(hashCode());
    }
    *
    * 3. 像String、Date、File、包装类等都重写了Object类中的toString()方法。
    * 使得在调用对象的toString()时,返回"实体内容"信息
    *
    * 4. 自定义类也可以重写toString()方法,当调用此方法时,返回对象的"实体内容"
    3.2 如何重写toString()
    举例:
    //自动实现
    @Override
    public String toString() {
    return "Customer [name=" + name + ", age=" + age + "]";
    }

    当我们输出一个对象的引用时,实际上就是调用当前对象的toString()

    例子:

    //关于toString()
        @Test
        public void test3(){
            String s = "abc";
            s = null;
            System.out.println(s);//null
            System.out.println("*********");
            System.out.println(s.toString());//出现NullPointerException
        }

    问题:为什么System.out.println(s)输出的是null,而System.out.println(s.toString())输出的却是NullPointerException(空指针异常)

    回答:

    进入查看string中的println的源码

     进去查看print()的源码

     可以看到这里有一个保护机制,如果形参s为空,则输出"null"字符串而不是报空指针异常

    s.toString()

    则会指向空指针
    不积跬步,无以至千里;不积小流,无以成江海。
  • 相关阅读:
    自我介绍
    学习进度第二周
    [BJDCTF2020]Easy MD5
    2020/2/13 bluecmsv1.6sp1代码审计
    [CISCN2019 总决赛 Day1 Web4]Laravel1
    [ByteCTF 2019]EZCMS
    2020/2/12 PHP编程学习
    [XNUCA2019Qualifier]EasyPHP
    [RoarCTF 2019]Online Proxy
    [GXYCTF2019]BabySQli
  • 原文地址:https://www.cnblogs.com/CCTVCHCH/p/14592366.html
Copyright © 2020-2023  润新知