(String)、toString、String.valueOf的区别
1.(String)
将object转成String类型的值。
需要注意的是类型必须能转成String类型,(例如Integer类型就不行)否则抛出ClassCastException
备注:null值可以强制转换为任何java类类型,(String)null是合法的
.toString()
java.lang.Object类里已有public方法.toString(),而通常派生类会覆盖Object里的toString()方法,所以对任何java对象都可以调用此方法。
必须保证object不是null值,否则将抛出NullPointerException异常。
String.valueOf(Object)
弥补了前两者的不足,以.toString()方法为基础。
注意:当转换null时得使用String.valueOf((Object) null),而不是String.valueOf(null)(会报空指针错)
public static void main(String[] args) { Object num1 = "12"; System.out.println("*****toString转换结果:"+num1.toString()); System.out.println("*****String转换结果:"+(String)num1); System.out.println("*****valeOf转换结果:"+String.valueOf(num1)); Object num2 = 12; System.out.println("*****toString转换结果:"+num2.toString()); System.out.println("*****valeOf转换结果:"+String.valueOf(num2)); //System.out.println("*****String转换结果:"+(String)num2); Object num3 = null; //System.out.println("*****toString转换结果:"+num3.toString()); System.out.println("*****valeOf转换结果:"+String.valueOf(num3)); System.out.println("*****String转换结果:"+(String)num3); }
运行结果如下:
总结自:https://www.cnblogs.com/yanze/p/10954502.html