高琪Java影片裡,這個將int類型的值直接賦值給Integer物件的語句怎麼會透過編譯呢?
ringa_lee
ringa_lee 2017-06-15 09:21:19
0
4
958

最近看高琪Java300篇教程,裡面有句代碼高老師一筆帶過了,但是細細看總覺得其中蘊含的知識點不理解,代碼如下:

public class Test063 {
    public static void main(String[] args){
    Integer i = Integer.parseInt("234");
    System.out.println(i);
    }
}

第二句Interger.parseInt("234")我看了原始碼,

#上面明明說parseInt方法回傳的是int型別的值,可它怎麼能直接賦值給一個Integer物件呢?

我又做了下實驗

Integer a = 1;//报错
Integer b = Integer.parseInt("1");//编译通过

結果讓我非常懵逼,為什麼會這樣呢?

萌新求解惑 謝謝!

ringa_lee
ringa_lee

ringa_lee

全部回覆(4)
学习ing

同萌新,請問你JDK是哪個版本的呢,我在自己的IDE上寫Integer i = 1;是沒問題的,最近更新到JDK8,但我想JDK7應該也是可以的,不知道之前的版本自動裝箱的限制是什麼。你要不試試看升級一下?

淡淡烟草味

JDK 1.5之後, 有一個自動裝包和自動拆包的特性, 會在這種原始數據類型和其對象類型做自動轉換, 官方文檔:

https://docs.oracle.com/javas...

滿天的星座

在JDK1.5以後是可以自動裝箱拆箱的

巴扎黑

老師的程式碼是一個自動裝箱的過程,Integer是int的包裝類別.你的JDK版本應該比較老了.

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!