部分轉自http://blog.csdn.net/shaowei213/article/details/39359239
做數(shù)據(jù)庫的時候一般都會有一個主鍵,這個主鍵我們常常設置為整型自增的,通過主鍵來找一個唯一的用戶,判斷主鍵是不是這個用戶的就成為了系統(tǒng)邏輯中很重要的一環(huán)。有一天我把一個User表的id設置為了Integer類型的,然后在一個錢包表里有一個UserId在對User表做映射,用戶在操作錢包的時候需要對錢包表的UserId和當前用戶的id進行比較,我是這樣比較的
if(wallet.getUserId() == user.getId())
但是有時候卻驗證不對,我怒了就把wallet.getUserId() 和user.getId()都打印到控制臺,發(fā)現(xiàn)都是245,也就是說是一致的,那為什么if判斷為false呢?原因在于包裝類和基本數(shù)據(jù)類型判斷方式是不同的
Integer num1 = new Integer(1);
Integer num2 = new Integer(1);
System.out.println(num1 == num2);//false
System.out.println(num1.equals(num2));//true
所以當兩個要比對id的實體類里面的id類型是Integer而不是int的話就需要使用equals來進行比對,如果是int類型的用==就好