久久r热视频,国产午夜精品一区二区三区视频,亚洲精品自拍偷拍,欧美日韩精品二区

您的位置:首頁技術(shù)文章
文章詳情頁

java 實(shí)現(xiàn)將Object類型轉(zhuǎn)換為int類型

瀏覽:105日期:2023-02-09 15:46:22
如何將Object類型轉(zhuǎn)換為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轉(zhuǎn)化Integer碰見的坑

項(xiàng)目開發(fā)中使用Interger將字符串轉(zhuǎn)為Integer類型,并進(jìn)行相應(yīng)的比較,開始數(shù)據(jù)較小,并未發(fā)現(xiàn)問題,如15

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

返回的結(jié)果為true,但是給我423

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

返回的結(jié)果為false,立馬查看Integer的源碼,發(fā)現(xiàn)了如下代碼

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); }

發(fā)現(xiàn)jdk未-128到127的數(shù)據(jù)做了一個緩存,如果數(shù)字在這個范圍內(nèi),是不會再從新new Integer的。問題,明白了,當(dāng)為423時,會創(chuàng)建2個對象,而我們比較是使用 == 比較地址符的,所以肯定不相同。

我們可以查看下內(nèi)存地址。15的內(nèi)存地址

java 實(shí)現(xiàn)將Object類型轉(zhuǎn)換為int類型

423的地址

java 實(shí)現(xiàn)將Object類型轉(zhuǎn)換為int類型

423的內(nèi)存地址不一樣。所以我們需要使用equals來做比較,不應(yīng)該使用==來比較

以上為個人經(jīng)驗(yàn),希望能給大家一個參考,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: Java
相關(guān)文章:
主站蜘蛛池模板: 台南县| 西乌珠穆沁旗| 伊吾县| 白城市| 赤壁市| 高尔夫| 牡丹江市| 沾化县| 汕尾市| 麻城市| 互助| 罗甸县| 抚远县| 武胜县| 东阳市| 稻城县| 通化市| 綦江县| 馆陶县| 舞钢市| 九龙县| 搜索| 崇信县| 江山市| 清流县| 上高县| 洪湖市| 遂宁市| 麦盖提县| 密云县| 石泉县| 大关县| 波密县| 麻城市| 虹口区| 巴青县| 平舆县| 库尔勒市| 汉中市| 启东市| 麦盖提县|