1.object.toString()方法
这种方法要注意的是object不能为null,否则会报NullPointException,一般别用这种方法。
2.String.valueOf(object)方法
这种方法不必担心object为null的问题,若为nul
l,会将其转换为"null"字符串,而不是null。这一点要特别注意。"null"和null不是一个概念。
3.(String)(object)方法
这种方法也不必担心object为null的问题。但是,object要是能转换为String的对象。若Object object = 1,再(String)1,会报类转换异常。
4.“”+object方法
这种方法也不必担心object为null的问题。但若object为null,会返回"null"字符串,和String.valueOf(object)一样。
以下为代码示例:
public class Test {
public static void main(String[] args) {
Object object = null;
System.out.println("(String)null和\"null\"比较的结果为:" + ("null".equals((String)object)));
System.out.println("String.valueOf(null)和\"null\"比较的结果为:" + "null".equals(String.valueOf(object)));
System.out.println("(\"\" + null)和\"null\"比较的结果为:" + "null".equals("" + object));
}
}
运行结果:
扫描二维码关注公众号,回复:
16309696 查看本文章
(String)null和"null"比较的结果为:false
String.valueOf(null)和"null"比较的结果为:true
("" + null)和"null"比较的结果为:true
方式 | 示例 | 注意事项 |
---|---|---|
Object.toString() | Object object = getObject(); System.out.println(object.toString()); |
使用时要注意,必须保证object不是null值,否则将抛出NullPointerException异常。 |
(String)obj | Object obj = new Object (); String strVal = (String)obj; |
被转换的数据类型必须能转成String类型。因此最好用 instanceof 做个类型检查,以判断是否可以转换。否则容易抛出CalssCastException异常。此外,需特别小心的是因定义为Object 类型的对象在转成String时语法检查并不会报错,这将可能导致潜在的错误存在,另外,因null值可以强制转换为任何java类类型,(String)null也是合法的。 |
String.valueOf(Object) | String.valueOf(object) | 注意当object为null时,String.valueOf(object)的值是字符串"null",而不是null,相当于把空标志作为数据显示出来了。 |