久久r热视频,国产午夜精品一区二区三区视频,亚洲精品自拍偷拍,欧美日韩精品二区

您的位置:首頁技術(shù)文章
文章詳情頁

使用條件運(yùn)算符的奇怪Java行為。是蟲子嗎?

瀏覽:130日期:2024-05-02 09:49:18
如何解決使用條件運(yùn)算符的奇怪Java行為。是蟲子嗎??

盡管看起來好像一個,但這一點(diǎn)也不令人驚訝。該行為在JLS§15.25-條件運(yùn)算符中指定:

否則,如果第二個和第三個操作數(shù)的類型可以轉(zhuǎn)換(第5.1.8節(jié))為數(shù)字類型,則有幾種情況:

如果其中一個操作數(shù)的類型為byte或Byte,而另一個操作符的類型為short或Short,則條件表達(dá)式的類型為short。

[…]

否則,將二進(jìn)制數(shù)值提升(第5.6.2節(jié))應(yīng)用于操作數(shù)類型,

請注意,二進(jìn)制數(shù)值升級執(zhí)行值集轉(zhuǎn)換(第5.1.13節(jié)),并且可能 (第5.1.8節(jié))。

因此,Integer和Double類型作為二進(jìn)制數(shù)值提升的過程被取消裝箱到它們各自的原始副本-int和double。然后,條件運(yùn)算符的類型是intand的提升類型double,即double。因此結(jié)果是1.0。然后,當(dāng)然會將最終結(jié)果裝箱到Double。

解決方法

您能否運(yùn)行以下內(nèi)容并進(jìn)行解釋?

Object o = true ? new Integer(1) : new Double(2.0);System.out.println(o);

我發(fā)現(xiàn)令人驚訝,因?yàn)橛腥似谕蛴?而不是1.0

標(biāo)簽: java
相關(guān)文章:
主站蜘蛛池模板: 吴江市| 高雄县| 大名县| 柳林县| 大同市| 邵阳市| 贵德县| 沾化县| 布尔津县| 东乡县| 石泉县| 武鸣县| 米易县| 宕昌县| 阿拉善盟| 永顺县| 凤山县| 饶河县| 越西县| 丹东市| 海晏县| 德惠市| 南投县| 孟州市| 满城县| 和平县| 利津县| 曲阜市| 荃湾区| 蓝田县| 亳州市| 巴里| 乐清市| 九江市| 莲花县| 舒城县| 山东| 绍兴县| 响水县| 桂阳县| 石景山区|