1.String.valueOf(Object)
从下图(a图)的String类的valueOf(Object)的源码可以看到,当传入的值为null的时候返回的是“null”字符串,而不是null,所以在这里如果想判断这个string的值不为空的时候,应该用字段串相关判断不为空的方法例如用equals方法。示例如下(b图)
a图:string类valueOf(Object)的源码
b图:示例
public void testObject(){Object o = null ;String s = String.valueOf(o);if ("null".equals(s)){System.out.println("返回的结果是null字符串");}if (s==null){//可以使用s=="null"System.out.println("返回的结果是null");}}结果:返回的结果是null字符串
2.Object.toString()
上a图string类valueOf(Object)的源码中,可以看到这里最终还是调用Object.toString()这个方法,所以可以直接用此方法转换成字符串。注意:必须保证Object不是null值,否则将抛出NullPointerException异常。
可以先判断Object对象不为null的时候,再转换成字符串。
3.(String)Object
需要转换的类型必须是能够转换为String类型的,否则会出现CalssCastException异常错误。