成人视屏在线观看-国产99精品-国产精品1区2区-欧美一级在线观看-国产一区二区日韩-色九九九

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

奇怪的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
相關文章:
主站蜘蛛池模板: 久久精品国产国产精品四凭 | 欧美特黄aaaaaa | 国产免费爽爽视频免费可以看 | 国产欧美一区二区三区视频在线观看 | 国产高清在线精品一区二区三区 | 三级网站国产 | 久久精品网站免费观看 | 国产日韩精品一区二区三区 | 日韩女人做爰大片 | 日韩中文字幕免费 | 欧美亚洲在线视频 | 99久久精品免费看国产 | 亚洲成a | 国产男女视频在线观看 | 久久久久久久国产精品 | 91精品久久一区二区三区 | 日本欧美一区二区 | 欧美日本在线一区二区三区 | 免费高清国产 | 欧美成人26uuu欧美毛片 | 黄色片三级网站 | 国产一区二区三区在线观看精品 | 高清在线亚洲精品国产二区 | 国产在线毛片 | 国产一级毛片一区二区三区 | 宅男噜噜噜一区二区三区 | 日韩a级一片 | 精品久久久久国产免费 | 成年女人在线观看片免费视频 | 欧美一区二区三区日韩免费播 | 久久精品亚洲综合一品 | 香港经典a毛片免费观看爽爽影院 | 深夜一级毛片 | 九九久久精品这里久久网 | 国产精品久久久久久久 | 男人和女人在床做黄的网站 | 久久久久久a亚洲欧洲aⅴ | 中国一级毛片aaa片 中国一级毛片录像 | 久久免费精品视频 | 国产性精品 | 国产精品1页|