国产成人精品亚洲777人妖,欧美日韩精品一区视频,最新亚洲国产,国产乱码精品一区二区亚洲

您的位置:首頁技術文章
文章詳情頁

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

瀏覽:68日期:2023-02-09 15:46:22
如何將Object類型轉換為int類型

Object object = null;try{ Integer.parseInt(object.toString());}catch (NumberFormatException e){}也可以先判定一下是否是Integer

//可以先判定一下是否是IntegerObject 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的內存地址

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

423的地址

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

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

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持好吧啦網。

標簽: Java
相關文章:
主站蜘蛛池模板: 阳江市| 平泉县| 德令哈市| 杭锦旗| 红河县| 平乐县| 寻甸| 加查县| 泽州县| 固安县| 辽阳市| 四平市| 怀安县| 南投县| 衡山县| 上饶市| 花莲县| 亳州市| 日土县| 澜沧| 呼玛县| 和田县| 陵川县| 民县| 亚东县| 凤山县| 嘉定区| 孝义市| 江城| 元阳县| 永修县| 扶余县| 昌宁县| 通化县| 揭阳市| 炉霍县| 贡觉县| 鄂托克旗| 丁青县| 永登县| 扬中市|