分类

  • 软件天地

  • JAVA对象转为Java String的几种常用方法‖
    对常用的转换方法进行一个
    象,String.valueOf(Objec
    和应用中,常常需要用到将对象
    总结。常用的方法有Object#toS
    t)等。下面对这些方法一一进行
    转为String这一基本功能。本文将
    tring(),(String)要转换的对
    分析。

      方法1:采用 Object#toString()方法

      请看下面的例子:                                                              

        Object object = getObject();                  

      System.out.println(object.toString());  

      在这种使用方法中,因
    何严格意义上的java对象都
    ,否则将抛出NullPointerE
    toString()方法。
    为java.lang.Object类里已有pu
    可以调用此方法。但在使用时要
    xception异常。采用这种方法时

    blic方法.toString(),所以对任
    注意,必须保证object不是null值
    ,通常派生类会覆盖Object里的


      方法2:采用类型转换(String)object方法

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

      Object obj = new Integer(100);                  

      String strVal = (String)obj;                      

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

      Integer obj = new Integer(100);                

      String strVal = (String)obj;                      

      如是格式代码,将会报语法错误。                                                

      此外,因null值可以强制转换为任何
    java类类型,(String)null也是合法的。

      方法3:采用String.valueOf(Object)

      String.valueOf(Objec
    所不同。在前面方法1的分
    不用担心object是否为null
    Jdk里String# valueOf(Obj
    t)的基础是Object#toString()
    析中提到,使用后者时需保证不
    值这一问题。为了便于说明问题
    ect)源码如下:
    。但它与Object#toString()又有
    为null。但采用第三种方法时,将
    ,我们来分析一下相关的源代码。


        /**                                                                    

         * Returns the string repres
    entation of the Object argument.

         *                                                                      

         * @param  obj  an Object.                      

         * @return if t
    he argument is null, then a
    string equal to


         *     "nul
    l"; otherwise, the value of

         *     obj.toString() is returned.      

         * @see   java.lang.Object#toString()

         */                                                                    


        public static St
    ring valueOf(Object obj) {

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

      }                                                                            

      从上面的源码可以很清晰的看出null
    我们应当注意到,当object为null时,St
    不是null!!!在使用过程中切记要注意
    object)==null){System.out.println(
    什么问题。再想一下,向控制台输出时,
    值不用担心的理由。但是,这也恰恰给了我们隐患。
    ring.valueOf(object)的值是字符串”null”,而
    。试想一下,如果我们用 if(String.valueOf(
    “传入的值是null!”);}这样的语句将可能会发生
    在视觉上如下语句在执行的结果上有什么不同:


      System.out.println(S
    tring.valueOf(null));

      System.out.println(null);                            

      我们看到的输出将是一模一样的东西:null,但它们意义相同吗?                

    上一页 下一页




    map