一、采用Object.toString()
toString方法是java.lang.Object對象的一個public方法。在java中任何對象都會繼承Object對象,所以一般來說任何對象都可以調(diào)用toString這個方法。這是采用該種方法時,常派生類會覆蓋Object里的toString()方法。
但是在使用該方法時要注意,必須保證Object不是null值,否則將拋出NullPointerException異常。
二、采用(String)Object
該方法是一個標(biāo)準(zhǔn)的類型轉(zhuǎn)換的方法,可以將Object轉(zhuǎn)換為String。但是在使用該方法是要注意的是需要轉(zhuǎn)換的類型必須是能夠轉(zhuǎn)換為String的,否則會出現(xiàn)CalssCastException異常錯誤。
Object o = new Integer(100);
String string = (String)o;
這段程序代碼會出現(xiàn)java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.String。因?yàn)閷nteger類型強(qiáng)制轉(zhuǎn)換為String類型,無法通過。
三、String.valueOf(Object)
上面我們使用Object.toString()方法時需要擔(dān)心null問題。但是使用該方法無需擔(dān)心null值問題。因?yàn)樵谑褂肧tring.valueOf(Object)時,它會判斷Object是否為空值,如果是,則返回null。下面為String.valueOf(Object)的源碼:
public static String valueOf(Object obj) {
return (obj == null) ? "null" : obj.toString();
}
從上面我們可以看出兩點(diǎn):一是不需要擔(dān)心null問題。二是它是以toString()方法為基礎(chǔ)的。
但是一定要注意:當(dāng)object為null時,String.valueOf(object)的值是字符串對象:"null",而不是null?。?!