zoukankan      html  css  js  c++  java
  • 关于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()

    则会指向空指针
    不积跬步,无以至千里;不积小流,无以成江海。
  • 相关阅读:
    vmware Unable to open kernel device "\.Globalvmx86": The system cannot find the file 的解决方法
    nc和telnet配合使用
    linux下批量替换文件内容
    Linux动态库的导出控制
    goang Receiver & interface
    Go与C语言的互操作 cgo
    Go fsm
    Git多账号登陆
    mysql 安装与配置、使用
    Reverse Integer
  • 原文地址:https://www.cnblogs.com/CCTVCHCH/p/14592366.html
Copyright © 2011-2022 走看看