java 實現將Object類型轉換為int類型

如何將Object類型轉換為int類型

Object object = null;
try
{
    Integer.parseInt(object.toString());
}
catch (NumberFormatException e)
{}

也可以先判定一下是否是Integer

//可以先判定一下是否是Integer
Object object = "111";
if (object instanceof Integer) {
   Integer.parseInt(object.toString());
}

String轉化Integer碰見的坑

項目開發中使用Interger將字符串轉為Integer類型,並進行相應的比較,開始數據較小,並未發現問題,如15

String a = "15";
System.out.println(Integer.valueOf(a) == Integer.valueOf("15"));

返回的結果為true,但是給我423

String a = "423";
System.out.println(Integer.valueOf(a) == Integer.valueOf("423"));

返回的結果為false,立馬查看Integer的源碼,發現瞭如下代碼

public static Integer valueOf(int i) {     
      final int offset = 128;     
      if (i >= -128 && i <= 127) { // must cache      
        return IntegerCache.cache[i + offset];     
     }     
     return new Integer(i);     
} 

發現jdk未-128到127的數據做瞭一個緩存,如果數字在這個范圍內,是不會再從新new Integer的。問題,明白瞭,當為423時,會創建2個對象,而我們比較是使用 == 比較地址符的,所以肯定不相同。

我們可以查看下內存地址。15的內存地址

423的地址

423的內存地址不一樣。所以我們需要使用equals來做比較,不應該使用==來比較

以上為個人經驗,希望能給大傢一個參考,也希望大傢多多支持WalkonNet。

推薦閱讀: