小心你熟悉的equals 用法的乙個陋習

2021-07-04 08:26:58 字數 534 閱讀 3898

equals()與「==」的使用我們已經很熟悉了,這裡不做綴述,只說我今天遇到的乙個小問題,希望看到的且沒有注意到這個問題的神們可以避免這樣的問題。

今天在除錯程式的時候,一直報空指標異常,異常行也定位到了,但是就是看不出為什麼錯。

// 普通使用者要判斷是否含有這個許可權

for(role role:roles)

}

你是否認為上邊的if判斷中(privilege.geturl()).equals(privurl)和privurl.equals(privilege.geturl())效果是一樣的呢!在兩邊都不為空的時候確實是一樣的,可以正常的判斷true or false,但是如果有一邊為null呢,那情況可能就不一樣了,下面看圖:

也就是說你必須保證放到前邊的不為空,才能保證不會有異常。

這個問題很小,在中也很明顯有紅色提示,但如果你寫的是個變數可就不會提示你了。

熟悉DAO模式的用法

今天主要是使用dao模式。dao模式通過對業務層提供資料抽象層介面,實現了以下目標 1.資料儲存邏輯的分離 通過對資料訪問邏輯進行抽象,為上層機構提供抽象化的資料訪問介面。業務層無需關心具體的select,insert,update操作,這樣,一方面避免 了業務 中混雜jdbc呼叫語句,使得業務落實...

Java中equals的用法

equals 方法是string類從它的超類object中繼承的,被用來檢測兩個物件是否相等,即兩個物件的內容是否相等,區分大小寫。對於字串變數來說,使用 和 equals 方法比較字串時,其比較方法不同。比較兩個變數本身的值,即兩個物件在記憶體中的首位址。equals 比較字串中所包含的內容是否相...

java中的equals用法

在object 類中定義有 1 public boolean equals object object 方法提供定義物件是否 相等 邏輯。2 object的equals方法定義為 x.equals y 當x和y是同乙個物件的引用時,返回true,否則返回false 3 在其他一些類中,例如strin...