最近看高琪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");//编译通过
結果讓我非常懵逼,為什麼會這樣呢?
萌新求解惑 謝謝!
学习ing2017-06-15 09:23:19
同萌新,請問你JDK是哪個版本的呢,我在自己的IDE上寫Integer i = 1;是沒問題的,最近更新到JDK8,但我想JDK7應該也是可以的,不知道之前的版本自動裝箱的限制是什麼。你要不試試看升級一下?
淡淡烟草味2017-06-15 09:23:19
JDK 1.5之後, 有一個自動裝包和自動拆包的特性, 會在這種原始數據類型和其對象類型做自動轉換, 官方文檔:
https://docs.oracle.com/javas...