如何比較兩個有可能為null的例項

2021-05-23 23:16:12 字數 690 閱讀 4615

以前在寫程式的時候,碰到需要比較兩個有可能為null的例項時,為了避免出現nullpointerexception,經常用這樣的一段**來比較:

abc"

;cde"

;if((obj1

==null

&&obj2

==null

) ||

(obj1

!=null

&&obj1.equals(obj2))

||(obj2

!=null

&&obj2.equals(obj1)))

這樣的程式,讀起來真是挺拗口。我一直沒有想到什麼好的方法解決這個問題,直到今天在看到jdk的abstractlist原始碼的equals方法的實現時,看到這一段:

if(!(o1

==null?o2

==null

: o1.equals(o2)))

return

false;

原來用三元運算子可以很好的解決這個問題,呵呵,我前面的程式可以改寫成:

abc"

;cde"

;if(obj1

==null

?obj2

==null

: obj1.equals(obj2))

system.

out.println(

"equals");

如何比較兩個 Schema 的異同

有的時候,dba 需要迅速找出來同乙個 oracle 資料庫上或者不同資料庫的兩個 schema 的差異.這種情況應該比較常見,比如測試資料庫發布到產品資料庫的時候,需要 dba 做頻繁的檢查。應對的辦法之一是通過 toad 這樣的 gui 工具來查詢.具體操作應該是很簡單的。oracle 自帶的 ...

如何比較兩個演算法的效率

在學演算法的時候,經常會涉及分析演算法的複雜度和效率的問題,按照書本上的理論通常也能夠大概推出個結論。通常都是根據演算法中重要的語句去推算,例如for 迴圈語句等。那麼有沒有可以用程式去真正上機實驗的辦法呢?其實方法也是很簡單,如果我們用的是c語言,可以利用 include 檔案中的ftime 函式...

php比較兩個變數的值 php如何交換兩個變數的值

本篇文章主要給大家介紹php交換兩個變數的值的具體實現方法。交換兩個變數是指相互交換變數的值。通常,這是通過記憶體中的資料完成的。交換兩個變數的方法有兩種 下面我們就通過具體的 示例為大家介紹php交換兩個變數值的方法。方法一 使用第三個變數交換兩個數字 如下 a 15 b 27 echo 交換前的...