色综合图-色综合图片-色综合图片二区150p-色综合图区-玖玖国产精品视频-玖玖香蕉视频

您的位置:首頁技術文章
文章詳情頁

奇怪的Java行為。三元運算符

瀏覽:127日期:2024-04-24 11:24:56
如何解決奇怪的Java行為。三元運算符?

該行為在JLS-條件運算符中指定:

如果第二和第三個操作數中的一個是原始類型T的,并且其他的類型是施加裝箱轉換(§5.1.7)到T的結果,則 。

強調我的。因此,在第二種情況下:

Float f = true ? testFloat : 0f;

由于第三個操作數是基本類型(T),因此表達式的類型將是浮點類型- T。因此, 取消 當前引用的 testFloat的 裝箱 將導致NPE 。null``float __

對于第一種情況,相關部分是最后一部分:

否則,第二和第三操作數分別為S1和S2類型。令T1為對S1進行裝箱轉換所產生的類型,而T2為對S2進行裝箱轉換所產生的類型。條件表達式的類型是將捕獲轉換(§5.1.10)應用于lub(T1,T2)(§15.12.2.7)的結果。

因此,根據此:

null type - S1float - S2null type - T1 (Boxing null type gives null type)Float - T2 (float Boxed to Float)

然后條件表達式的類型變為- Float。沒有null需要的拆箱,因此沒有NPE。

解決方法

為什么此代碼有效?

Float testFloat = null;Float f = true ? null : 0f;

為什么這會引發異常?

Float testFloat = null;Float f = true ? testFloat : 0f;

但是最奇怪的是,該代碼也可以成功運行,沒有任何異常:

Float testFloat = null;Float f = testFloat;

看來Java的三元運算符會改變行為。有人可以解釋為什么嗎?

標簽: java
相關文章:
主站蜘蛛池模板: 国产成人精品三级91在线影院 | 欧美一级aa天码毛片 | 91精品国产爱久久久久久 | 国产亚洲综合精品一区二区三区 | 国产精品一区二区资源 | 欧美日韩国产亚洲一区二区三区 | 深夜福利亚洲 | 91色老99久久九九爱精品 | 免费看片aⅴ免费大片 | 欧美一级级毛片 | 久久精品国产影库免费看 | 欧美成人久久一级c片免费 欧美成人看片黄a免费 | 国产欧美日韩精品一区二 | 亚洲国产成人在人网站天堂 | 99热成人精品热久久66 | 最新理论三级中文在线观看 | 七七国产福利在线二区 | 免费一级欧美大片视频在线 | 一级做性色a爰片久久毛片免费 | 精品在线观看视频 | 日本免费网站视频www区 | 欧美在线观看免费一区视频 | 国产在线精品成人一区二区三区 | 国产视频自拍偷拍 | 毛片视频在线免费观看 | 欧美乱爱 | 久久狠| 中文字幕一区二区三区精品 | 国产特黄特色一级特色大片 | 久草在线 | 伊人色在线视频 | 色综合久久久高清综合久久久 | 久久夜色精品国产噜噜亚洲a | 亚洲成 人a影院青久在线观看 | 香蕉福利久久福利久久香蕉 | 日本美女视频韩国视频网站免费 | 国产一区二区三区四区在线 | 久草网视频在线 | 欧美手机手机在线视频一区 | 网站免费满18成年在线观看 | 麻豆国产96在线 | 中国 |