java.lang.NullPointerException 解决(toString())

前言

众所周知 空指针这个异常是经常遇到的,最常见的bug,就算是大牛也不可避免,找这个问题着实让人头大

案例:

程序经常会用到 toString()方法,但是这样会造成很大的 java.lang.NullPointerException 风险
  public static void main(String[] args) {
    Object obj = null;
    System.out.println("a=" + (String)null);   //  ① a=null
    System.out.println("b=" + (String)obj);   //   ②  b=null
    System.out.println("c=" + String.valueOf(obj));//  ③ c=null
    System.out.println("d= "+ "".toString()); // ④  d=
    System.out.println("e=" + String.valueOf(null)); // ⑤ java.lang.NullPointerException
    System.out.println("f=" + String.valueOf("null")); //⑥ f=null
}

结论:

  使用 强转 和 String.valueOf()  可以有效避免   java.lang.NullPointerException

疑问?

③和⑤ 不是一样吗?
这个还真不一样,String.valueOf()是一个重载方法
看String.valueOf(obj) 源码

  • Returns the string representation of the {@code Object} argument.
    *

    • @param obj an {@code Object}.

    • @return if the argument is {@code null}, then a string equal to

    •      {@code "null"}; otherwise, the value of
      
    •      {@code obj.toString()} is returned.
      
    • @see java.lang.Object#toString()
      */
      public static String valueOf(Object obj) {

          return (obj == null) ? "null" : obj.toString();   //   "null".toString();
      

    }

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值