簡體   English   中英

對於原始數據類型這怎么可能?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM