更新時間:2020-07-22 16:10:31 來源:動力節點 瀏覽2428次
知道為什么以下程序拋出一個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());
}
沒有.這當然是一個優先問題,我很好奇連接如何工作.
解決方法
這是了解operator precedence的重要性的一個例子.
您需要括號,否則解釋如下:
String?test?=?("test"?+?testInteger)?==?null???"(null)"?:?testInteger.toString();
請參閱here了解操作符列表及其優先級.還要注意該頁面頂部的警告:
Note:Use explicit parentheses when there is even the possibility of confusion.
以上就是動力節點java培訓機構的小編針對“Java連續字符串中的條件運算符”的內容進行的回答,希望對大家有所幫助,如有疑問,請在線咨詢,有專業老師隨時為你服務。
0基礎 0學費 15天面授
有基礎 直達就業
業余時間 高薪轉行
工作1~3年,加薪神器
工作3~5年,晉升架構
提交申請后,顧問老師會電話與您溝通安排學習