亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

請教一個關于equals()方法比較時候的一個問題?代碼如下!

請教一個關于equals()方法比較時候的一個問題?代碼如下!

代碼片段:for (int i = 0; i < dvd.name.length; i++) {if (dvdName.equals(dvd.name[i]) && dvd.state[i] == 1) {dvd.state[i] = 0;// 標示借出System.out.println("借出《" + dvdName + "》成功!");dvd.date[i] = lendDate;break;} else if (dvdName.equals(dvd.name[i]) && dvd.state[i] == 0) {System.out.println("不能借出,《" + dvdName + "》已被借出!");break;} else if (!dvdName.equals(dvd.name[i]) && i == dvd.name.length - 1) {System.out.println("沒有找到此書!");break;}}上面那樣寫不會報錯,但是如果把equals()比較的兩個反過來就會空指針異常了,比如:dvd.name[i].equals(dvdName);不知道為什么會這樣,equals兩邊順序反了具體有什么區別?
查看完整描述

2 回答

?
MMMHUHU

TA貢獻1834條經驗 獲得超8個贊

舉個例子吧:
String a = "abc"; //不是空對象
boolean b = a.equals("abc"); //不會報錯
String c = null; //空對象
boolean d = c.equals("abc"); //會報錯
報不報錯主要看調用equals方法的對象是不是null。
所以很多程序員會這么寫程序:if ("".equals(a))...而不寫成if (a.equals(""))...
原因是a有可能是null。

查看完整回答
反對 回復 2021-05-23
  • 2 回答
  • 0 關注
  • 168 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號