Integer num=8;
//第一种转法:
String str=String.valueOf(num);
//第二种转法:
String str1=String.valueOf(num).toString();
//第三种转法:
String str2=num.toString();
//第四种转法:
String str3=num+"";
第一种转法,要是num为null也会挂掉
什么是显式什么是隐式啊?
网上很多人都说第四种转法是错误的.
但是我看挺简单的.到底能不能用啊
显式不就是上面的嘛。你直接在做类型转换的操作。
第四种num+"",num是数值型,“”是字符串型。对两种不同类型的类型做+运算的时候,虚拟机会自动进行类型转换,这个转换对于代码来说,是‘隐式’的。确实好多人在用这样的方法把一般的简单类型转换成字符串,但要注意使用的JDK和JRE版本。另外有人说这种方式会有效率问题,我也不太认同。因为字符串会存到字符串池中,如果是用过的,就不会再次创建。
另外第一种方法如果你直接使用String.valueOf(null)是不行的。
但是:Integer num = null;
String.valueOf(num);
就没问题。