更新時間:2020-07-22 16:10:31 來源:動力節(jié)點 瀏覽2363次
知道為什么以下程序拋出一個NPE
public?static?void?main(String[]?args)?{
????Integer?testInteger?=?null;
????String?test?=?"test"?+?testInteger?==?null???"(null)"?:?testInteger.toString();
}
而這個
public?static?void?main(String[]?args)?{
????Integer?testInteger?=?null;
????String?test?=?"test"?+?(testInteger?==?null???"(null)"?:?testInteger.toString());
}
沒有.這當(dāng)然是一個優(yōu)先問題,我很好奇連接如何工作.
解決方法
這是了解operator precedence的重要性的一個例子.
您需要括號,否則解釋如下:
String?test?=?("test"?+?testInteger)?==?null???"(null)"?:?testInteger.toString();
請參閱here了解操作符列表及其優(yōu)先級.還要注意該頁面頂部的警告:
Note:Use explicit parentheses when there is even the possibility of confusion.
以上就是動力節(jié)點java培訓(xùn)機構(gòu)的小編針對“Java連續(xù)字符串中的條件運算符”的內(nèi)容進行的回答,希望對大家有所幫助,如有疑問,請在線咨詢,有專業(yè)老師隨時為你服務(wù)。
相關(guān)閱讀
初級 202925
初級 203221
初級 202629
初級 203743