equals變數在前面和後面的區別

2021-10-24 12:27:32 字數 907 閱讀 4135

我就不廢話那麼多,直接上**:

package sf.com.maintest;

public class test

public boolean isbool(string a)

}

如上述**:a.equals("true");和"null".equals(a);有什麼區別的?

答案:前者會拋空指標異常,後者不會;

剖析:如果a=null,string物件就會是乙個空物件,空物件說明沒有equals方法,所以就會報空指標異常;

又如,後者a=null,"null".equals(a);結果永遠都為false,原因直接看原始碼:

public boolean equals(object anobject) 

//判斷anobject是否為string型別

if (anobject instanceof string)

return true;}}

return false;

}

為了避免這個坑點,還是使用另外一種方式吧!

使用org.apache.commons.lang包下的stringutils.equals(string str1, string str2)方法

直接看原始碼:

public static boolean equals(string str1, string str2)

//忽略大小寫進行比較

public static boolean equalsignorecase(string str1, string str2)

看到stringutils.equals這個方法了吧。他已經幫你繞過了那個坑,我還是比較推薦大家多用用stringutils工具類裡面的方法,

畢竟是人家封裝好的,可以直接拿來用,盡量少走彎路

equals變數在前面和後面的問題

string is cache portservice.findiscachebyid port.getid if is cache.equals 0 else今天在測試的時候遇到了這個問題。報了空指標異常。經過了一番查詢之後找到了問題所在,決定記錄下來。問題原因是我的is cache可能為null...

寫在前面的話

csdn開博前言 這是第一次在csdn寫博,所以將寫作的背景及原因交待一下,恐以後自己寫博的時候離題萬里,當看到這篇文章的時候明白要在這個地方留下些什麼東西。也或許有幸能被別人看到我寫的文字,也能明白我的意圖。寫這些文字的時候,我做為一名開發人員在一家軟體公司實習。能有機會從事和程式設計相關的工作心...

寫在前面的話

屈指算算,從接觸計算機到現在,已經過去了12個年頭,其中做全職程式設計師也有3個年頭了。這些年來我頻繁查閱網際網路上的資源,也免費使用許多優秀的開源 感謝網際網路提供的知識海洋,它讓我們獲取知識的方式變得如此便捷。我曾經註冊過許許多多的網路賬號,如今它們大多我已忘記。現在我想把我的一點想法記錄下來,...