|
![]() |
名片设计 CorelDRAW Illustrator AuotoCAD Painter 其他软件 Photoshop Fireworks Flash |
|
将java对象转为java String的几种常用方式剖析 在java项目的实际开发和应用中,经常需要用到将对象转为String这一基本功能。本文将对常用的转变方式进行一个总结。常用的方式有Object#toString(),(String)要转变的对象,String.valueOf(Object)等。下面对这些方式一一进行分析。 方式1:采用 Object#toString()方式 请看下面的例子: Object object = getObject(); System.out.println(object.toString()); 注1 在这种使用方式中,因为java.lang.Object类里已有public方式.toString(),所以对任何严格意义上的java对象都可以调用此方式。但在使用时要注重,必须保证object不是null值,否则将抛出NullPointerException非常。采用这种方式时,通常派生类会覆盖Object里的toString()方式。 方式2:采用类型转变(String)object方式 这是标准的类型转变,将object转成String类型的值。使用这种方式时,需要注重的是类型必须能转成String类型。因此最好用instanceof做个类型检查,以判定是否可以转变。否则轻易抛出CalssCastException非常。此外,需特殊小心的是因定义为Object 类型的对象在转成String时语法检查并不会报错,这将可能导致潜在的错误存在。这时要格外小心。如: 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(Object)的基础是Object#toString()。但它与Object#toString()又有所不同。在前面方式1的分析中提到,使用后者时需保证不为null。但采用第三种方式时,将不用担心object是否为null值这一问题。为了便于说明问题,我们来分析一下相关的源代码。Jdk里String# valueOf(Object)源码如下: /** * Returns the string representation of the Object argument. * * @param obj an Object. * @return if the argument is null, then a string equal to * "null"; otherwise, the value of * obj.toString() is returned. * @see java.lang.Object#toString() */ public static String valueOf(Object obj) { return (obj == null) ? "null" : obj.toString(); } 从上面的源码可以很清楚的看出null值不用担心的理由。但是,这也恰恰给了我们隐患。我们应当注重到,当object为null时,String.valueOf(object)的值是字符串”null”,而不是null!!!在使用过程中切记要注重。试想一下,假如我们用 if(String.valueOf(object)==null){System.out.println(“传入的值是null!”);}这样的语句将可能会发生什么问题。再想一下,向控制台输出时,在视觉上如下语句在执行的结果上有什么不同: System.out.println(String.valueOf((Object)null)); 注2 System.out.println((Object)null); 注2 我们看到的输出将是一模相同的东西:null,但它们意义一样吗? 注1:光就System.out.println的使用来说,语句System.out.println(object.toString()); 换为System.out.println(object); 更好。此处如是用法主要是为了说明Object#toString()的用法。 注2:推荐使用System.out.println(String.valueOf((Object)null)); 不推荐使用System.out.println(String.valueOf(null));在使用重载方式时,这样做是一个好的习惯。 以上是对object对象转变为String的一些总结。 返回类别: 教程 上一教程: JAVA中的两个特别变量THIS和SUPER 下一教程: 完全把握JAVA中的 您可以阅读与"将JAVA对象转为JAVA STRING的几种常用方式剖析"相关的教程: · 一些异常有用的JAVA常用方式(1) · JAVA正则表达式4种常用功能 · Java新手常犯的几种错误 · 一些异常有用的JAVA常用方式( 2) · JAVA正则表达式4种常用功能 |
![]() ![]() |
快精灵印艺坊 版权所有 |
首页![]() ![]() ![]() ![]() ![]() ![]() ![]() |