zoukankan      html  css  js  c++  java
  • 原!! java直接打印一个对象时,并不是直接调用该类的toString方法 ,而是会先判断是否为null,非null才会调用toString方法

    网上看了好多java直接打印一个对象时,直接调用该类的toString方法 。

    但是:

      Object obj=null;
      System.out.println(obj);//没有报错
      System.out.println(obj.toString());//报空指针异常
    
    System.out.println(obj);既然也是直接调用toString方法,为什么不报错???

    原因总结如下:

    1.调用Object类的toString方法,必须保证object不是null值,否则将抛出NullPointerException异常。

    2.System.out.println()源码如下:(即会先判断是否为null,非null才会调用toString()方法)

    public void println(Object x) {
            String s = String.valueOf(x);
            synchronized (this) {
                print(s);
                newLine();
            }
        }
    
     public static String valueOf(Object obj) {
    	return (obj == null) ? "null" : obj.toString();
        }
      public void print(String s) {
    	if (s == null) {
    	    s = "null";
    	}
    	write(s);
        }

      

    相关详细博文介绍:http://m.blog.csdn.net/article/details?id=44727535

  • 相关阅读:
    nginx原理及常用配置
    课程作业03-1
    Java动手动脑02
    Java课程作业02
    java课堂测试2
    Java验证码程序
    课程作业02-2
    课程作业02-1
    课程作业01
    《大道至简》第一章伪代码
  • 原文地址:https://www.cnblogs.com/wuyun-blog/p/5768876.html
Copyright © 2011-2022 走看看