亚洲免费在线视频-亚洲啊v-久久免费精品视频-国产精品va-看片地址-成人在线视频网

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

奇怪的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
相關文章:
主站蜘蛛池模板: 欧美高清在线 | 夜夜春夜夜夜夜猛噜噜噜噜噜 | 久久久久久久久一级毛片 | 国产aⅴ一区二区三区 | 美女亚洲视频 | 中文在线三级中文字幕 | 美女张开大腿让男人桶 | www.欧美成人| 欧美一级专区免费大片俄罗斯 | 国产午夜在线观看视频播放 | 国产一区亚洲二区三区毛片 | 欧美成人免费香蕉 | 欧美一级纶理片免费 | 成人满18在线观看网站免费 | 97超级碰碰碰免费公开在线观看 | 亚洲国产精品自在现线让你爽 | 日本三级中文字幕 | 俄罗斯三级毛片 | 一区二区中文字幕在线观看 | 日韩国产免费 | 中国美女一级黄色片 | 51国产偷自视频区视频手机播器 | 日本三级欧美三级人妇英文 | 国产不卡一区二区三区免费视 | 国产福利最新手机在线观看 | 国内成人自拍视频 | 国产精品久久久久久久久久98 | 亚洲欧美大片 | 免费亚洲网站 | 最新精品亚洲成a人在线观看 | 男女视频在线看 | a理论片| 手机在线播放av | 久色网址 | 欧美二区在线观看 | 亚洲艹| 国产一级淫片a免费播放口之 | 免费一级毛片在线播放 | 国内精品成人女用 | 国产精品欧美亚洲韩国日本 | 免费一级网站免费 |