關於強制轉換,toString()、(String)和String.valueOf()方法的區別,是這樣子的。

每個對象的類型在對象創建的時候已經確定並且不能更改,所謂強制轉換也只是使其表面上換成了另一種類型。

toString()

Object 類的 toString()方法返回一個字符串,該字符串由類名(對象是該類的一個實例)、at 標記符“@”和此對象哈希碼的無符號十六進制表示組成。

getClass().getName() + '@' + Integer.toHexString(hashCode());

但是調用toString()方法的對象不能爲null,否則會拋出異常:java.lang.NullPointerException

(String)object

  • 將object轉成String類型的值。

使用這種方法時,需要注意的是類型必須能轉成String類型。像char、int可用toString()方法轉換。

Integer obj = new Integer(100);
String strVal = (String)obj;
//int 無法轉換爲String,報錯
Object obj = new Integer(100);
String strVal = (String)obj;
//實質仍爲int,報錯

String.valueOf()

本身調用了toString()方法,源碼如下:

public static String valueOf(Object obj) {
	return (obj == null) ? "null" : obj.toString();
}

調用 toString() 之前判斷一下這個對象是不是null,如果不是null,則正常調用其toString()方法;如果是null 的話,則返回字符串形式的null。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章