zoukankan      html  css  js  c++  java
  • 【转】(String)、toString、String.valueOf的区别

      在Java项目的实际开发和应用中,常常需要用到将对象转为String这一基本功能。本文将对常用的转换方法进行一个总结。

      常用的方法有(String)+要转换的对象,Object.toString(),String.valueOf(Object)等。

    1、(String)

      这是标准的类型转换,将object转成String类型的值。使用这种方法时,需要注意的是类型必须能转成String类型。因此最好用instanceof做个类型检查,以判断是否可以转换。否则容易抛出CalssCastException异常。此外,需特别小心,因定义为Object 类型的对象,在转成String时语法检查并不会报错,这将可能导致潜在的错误存在。这时要格外小心。如:

    1 Object obj = new Integer(100);
    2 String strVal = (String)obj;

      在运行时将会出错,因为将Integer类型强制转换为String类型,无法通过。

    2、toString()

      在这种使用方法中,因为java.lang.Object类里已有public方法.toString(),所以对任何严格意义上的java对象都可以调用此方法。但在使用时要注意,必须保证object不是null值,否则将抛出NullPointerException异常。采用这种方法时,通常派生类会覆盖Object里的toString()方法。

    3、String.valueOf()

      这个方法是静态的,直接通过String调用,可以说是完美的,只是平时不习惯这样写而已,这样的实现避免了前面两个的不足和缺点。首先来看看他内部的实现机制:

    1 public static String valueOf(Object obj){
    2     return (obj==null) ? "null" : obj.toString()
    3 };

      在内部就是做了为空的判断的,所以就不会报出空指针异常。

      从上面的源码可以很清晰的看出null值不用担心的理由。但是,这也恰恰给了我们隐患。我们应当注意到,当object为null 时,String.valueOf(object)的值是字符串”null”,而不是null!!!在使用过程中切记要注意。

      转自《java.toString() ,(String),String.valueOf的区别

  • 相关阅读:
    Uva 10779 collector's problem
    poj 2728 最优比率树(最小生成树问题)
    LA 3126 二分图匹配 最小路径覆盖
    poj 1149 最大流构图
    Step By Step(Java XML篇)
    Step By Step(Java 输入输出篇)
    Step By Step(Java 集合篇)
    Step By Step(Java 线程篇)
    Step By Step(Java 反射篇)
    Step By Step(Java 国际化篇)
  • 原文地址:https://www.cnblogs.com/codingmengmeng/p/12157938.html
Copyright © 2011-2022 走看看