2009年1月29日 星期四

[JAVA] Integer.valueof 和 Integer.parseInt 的區別

他們有著本質上的區別。

Integer.valueof(String s)是將一個數字的字串包裝成物件
它是將一個實際值為數字的變量先轉成string型,
再將它轉成Integer型的包裝類別(相當于轉成了int的類別)這樣轉完的物件就具有方法和屬性了。

Integer.parseInt(String s)只是將是數字的字串轉成數字
注意,他返回的是int型變量,不具備方法和屬性。


至於程式返回值為甚麼都可以用int來接收呢?
例如:
int aaa=Integer.parseInt(ccc);
int bbb=Integer.valueOf(ccc);

這是因為 Integer 和 int 可以自動轉換。
Integer i = 5; int k= i; //像這樣表示是沒有編譯錯誤的


另外要注意的是
new Integer.valueof().intValue();
返回的也是一个int的值。


static Integer valueOf(int i)
返回的是一個表示指定的 int 值的 Integer 物件。
static Integer valueOf(String s)
返回的是保持指定的 String 的值的 Integer 物件。



參考:
http://zhidao.baidu.com/question/22561536.html
http://www.itkhl.com/Article/xtyh/itkhl-425.html
http://zhidao.baidu.com/question/71207432.html?fr=qrl&fr2=query