您好,登錄后才能下訂單哦!
這篇文章主要介紹“java怎么實現將Object類型轉換為int類型”,在日常操作中,相信很多人在java怎么實現將Object類型轉換為int類型問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”java怎么實現將Object類型轉換為int類型”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
Object object = null; try { Integer.parseInt(object.toString()); } catch (NumberFormatException e) {}
//可以先判定一下是否是Integer Object object = "111"; if (object instanceof Integer) { Integer.parseInt(object.toString()); }
項目開發中使用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來做比較,不應該使用==來比較
到此,關于“java怎么實現將Object類型轉換為int類型”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。