簡體   English   中英

為什么我們不能在Java中將Float(wrapper)轉換為int(primitive)?

[英]Why cant we typecast Float(wrapper) to int(primitive) in java?

當我在進行從floatint類型的類型轉換以及從Integerint類型轉換時,它正在工作。 但是,當我嘗試將類型從Float轉換為int類型時,卻收到“不兼容類型”錯誤。 為什么我們不能從包裝器轉換為原始類型(除了它自己的原始類型)。

因為, Float是類類型。 它源自Object 但是int是原始類型。 您可以使用floatValue()進行轉換。

好的,這就是包裝類和基元之間的區別所在。 它使用有用的方法將值包裝在Class周圍。 這就是為什么要轉換為int的原因,您必須使用

Float f;
int i = (int)(f.floatValue());

或當然

Float f;
int i = f.intValue();

從某種意義上來說,包裝器是一個包裝某個值的類,從該類中提取一個值而不是將一個類轉換為一個值更合乎邏輯。

請注意java.lang.Float的源代碼: http : //grepcode.com/file/repository.grepcode.com/java/root/jdk/openjdk/6-b14/java/lang/Float.java#Float.intValue %28%29也許這使事情更清楚了。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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