java对象转化成String类型的四种⽅法⼩结
⽬录
⽅法1:采⽤ Object#toString()⽅法
⽅法2:采⽤类型转换(String)object⽅法
⽅法3:采⽤ String.valueOf(Object) ⽅法
⽅法4:采⽤ “”+object⽅法
在java项⽬的实际开发和应⽤中,常常需要⽤到将对象转为String这⼀基本功能。本⽂将对常⽤的转换⽅法进⾏⼀个总结。常⽤的⽅法有Object#toString(),(String)要转换的对象,String.valueOf(Object)等。
⽅法1:采⽤ Object#toString()⽅法
请看下⾯的例⼦:
Object object = getObject(); 
System.out.String());
在这种使⽤⽅法中,因为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)源码如下:
public static String valueOf(Object obj) {
 return (obj == null) ? "null" : String();
}
从上⾯的源码可以很清晰的看出null值不⽤担⼼的理由。但是,这也恰恰给了我们隐患。我们应当注意
到,当object为null 时,String.valueOf(object)的值是字符串”null”,⽽不是null在使⽤过程中切记要注意。试想⼀下,如果我们⽤
if(String.valueOf(object)==null){System.out.println(“传⼊的值是null!”);}这样的语句将可能会发⽣什么问题。再想⼀下,向控制台输出时,在视觉上如下语句在执⾏的结果上有什么不同:
System.out.println(String.valueOf(null));
System.out.println(null);
java valueof
我们看到的输出将是⼀模⼀样的东西:null,但它们意义不同
⽅法4:采⽤ “”+object⽅法
这种⽅法也不必担⼼object为null的问题。但若object为null,会返回"null"字符串,和String.valueOf(object)⼀样。
System.out.println(""+null);
System.out.println(null+"");
System.out.println("(\"\" + null)和\"null\"⽐较的结果为:" + (""+null).equals(null));
System.out.println("(\"\" + null)和\"null\"⽐较的结果为:" + (null+"").equals(null));
System.out.println("(\"\" + null)和\"null\"⽐较的结果为:" + "null".equals("" + null));
System.out.println("(\"\" + null)和\"null\"⽐较的结果为:" + "null".equals(null + "" ));
输出结果:
null
null
("" + null)和"null"⽐较的结果为:false
("" + null)和"null"⽐较的结果为:false
("" + null)和"null"⽐较的结果为:true
("" + null)和"null"⽐较的结果为:true
到此这篇关于java对象转化成String类型的四种⽅法⼩结的⽂章就介绍到这了,更多相关java对象转化成String内容请搜索以前的⽂章或继续浏览下⾯的相关⽂章希望⼤家以后多多⽀持!

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。