[英]How is this possible for primitive data type?
原始數據類型是否擴展了Object類? 如果否,那么這段代碼怎么可能
long l=4567;
Object o=l;
System.out.println(o);
為什么我們沒有任何編譯錯誤?
它稱為自動裝箱,是Java 5中引入的。
編譯器將檢測到您在應使用對象的地方使用了原語,並自動插入以下轉換:
Object o = Long.valueOf(l);
它也可以通過其他方式工作(自動拆箱):
Long one = 1;
System.out.println(one + 2);
// gets compiled to
System.out.println(one.longValue() + 2);
long原語會自動裝箱成Long類型的Object。 這非常有用,因為基元將根據需要自動在對象之間進行轉換。 有關詳細信息,請參見此處-http://docs.oracle.com/javase/tutorial/java/data/numberclasses.html
還有http://docs.oracle.com/javase/tutorial/java/data/autoboxing.html
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.