﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-李胜东的博客-文章分类-J2SE</title><link>http://www.blogjava.net/lsd1830/category/50796.html</link><description>java交流</description><language>zh-cn</language><lastBuildDate>Sat, 11 Feb 2012 23:10:08 GMT</lastBuildDate><pubDate>Sat, 11 Feb 2012 23:10:08 GMT</pubDate><ttl>60</ttl><item><title>java转为java String几种常用方法(转)</title><link>http://www.blogjava.net/lsd1830/articles/369581.html</link><dc:creator>李胜东</dc:creator><author>李胜东</author><pubDate>Wed, 08 Feb 2012 02:32:00 GMT</pubDate><guid>http://www.blogjava.net/lsd1830/articles/369581.html</guid><wfw:comment>http://www.blogjava.net/lsd1830/comments/369581.html</wfw:comment><comments>http://www.blogjava.net/lsd1830/articles/369581.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/lsd1830/comments/commentRss/369581.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/lsd1830/services/trackbacks/369581.html</trackback:ping><description><![CDATA[在java项目的实际开发和应用中，常常需要用到将对象转为String这一基本功能。本文将对常用的转换方法进行一个总结。常用的方法有Object#toString()，（String）要转换的对象，String.valueOf(Object)等。下面对这些方法一一进行分析。　　 <br /><br />　　方法1：采用 Object#toString()方法 <br /><br />　　请看下面的例子：　　 <br /><br />　　 Object object = getObject();　　 <br /><br />　　System.out.println(object.toString());　　 <br /><br />　　在这种使用方法中，因为java.lang.Object类里已有public方法.toString()，所以对任何严格意义上的java对象都可以调用此方法。但在使用时要注意，必须保证object不是null值，否则将抛出NullPointerException异常。采用这种方法时，通常派生类会覆盖Object里的toString（）方法。　　 <br /><br />　　方法2：采用类型转换（String）object方法 <br /><br />　　这是标准的类型转换，将object转成String类型的值。使用这种方法时，需要注意的是类型必须能转成String类型。因此最好用instanceof做个类型检查，以判断是否可以转换。否则容易抛出CalssCastException异常。此外，需特别小心的是因定义为Object 类型的对象在转成String时语法检查并不会报错，这将可能导致潜在的错误存在。这时要格外小心。如：　　 <br /><br />　　Object obj = new Integer(100);　　 <br /><br />　　String strVal = (String)obj;　　 <br /><br />　　在运行时将会出错，因为将Integer类型强制转换为String类型，无法通过。但是，　　 <br /><br />　　Integer obj = new Integer(100);　　 <br /><br />　　String strVal = (String)obj;　　 <br /><br />　　如是格式代码，将会报语法错误。　　 <br /><br />　　此外，因null值可以强制转换为任何java类类型，(String)null也是合法的。　　 <br />　　方法3：采用String.valueOf(Object) <br /><br />　　String.valueOf(Object)的基础是Object#toString()。但它与Object#toString()又有所不同。在前面方法1的分析中提到，使用后者时需保证不为null。但采用第三种方法时，将不用担心object是否为null值这一问题。为了便于说明问题，我们来分析一下相关的源代码。Jdk里String# valueOf(Object)源码如下：　　 <br /><br />　　 /** <br /><br />　　 * Returns the string representation of the Object argument. <br /><br />　　 *　　 <br /><br />　　 * @param obj an Object.　　 <br /><br />　　 * @return if the argument is null, then a string equal to　　 <br /><br />　　 * "null"; otherwise, the value of　 <br /><br />　　 * obj.toString() is returned.　　 <br /><br />　　 * @see java.lang.Object#toString()　　 <br /><br />　　 */　 <br /><br />　　 public static String valueOf(Object obj) {　　 <br /><br />　　 return (obj == null) ? "null" : obj.toString();　 <br /><br />　　} <br /><br />　　 <br /><br />　　从上面的源码可以很清晰的看出null值不用担心的理由。但是，这也恰恰给了我们隐患。我们应当注意到，当object为null时，String.valueOf（object）的值是字符串&#8221;null&#8221;，而不是null！！！在使用过程中切记要注意。试想一下，如果我们用 if(String.valueOf（object）==null){System.out.println(&#8220;传入的值是null！&#8221;);}这样的语句将可能会发生什么问题。再想一下，向控制台输出时，在视觉上如下语句在执行的结果上有什么不同：　　 <br /><br />　　System.out.println(String.valueOf(null));　　 <br /><br />　　System.out.println(null);　　 <br /><br />　　我们看到的输出将是一模一样的东西：null，但它们意义相同吗？　　 <br /><br />　　以上是对object对象转换为String的一些总结。 <img src ="http://www.blogjava.net/lsd1830/aggbug/369581.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/lsd1830/" target="_blank">李胜东</a> 2012-02-08 10:32 <a href="http://www.blogjava.net/lsd1830/articles/369581.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>