1111
今天在寫項目的時候,出現long型問題的判斷
Long id = 1212121218888L;
System.out.println(id.equals(1212121218888); // false
System.out.printLn(id.equals(1212121218888L); // true
多了一個 L ,就是true了,
看源碼可知:
1 public boolean equals(Object obj) {
2 if (obj instanceof Long) {
3 return value == ((Long)obj).longValue();
3 }
4 return false;
5 }
Long 類型的重寫 equals 使用的是判斷的方式: instanceof ,使用instanceof的文檔
參考文檔 = https://www.cnblogs.com/ysocean/p/8486500.html
在第二行的時候, 使用 instanceof 判斷傳入的參數的類型是否能轉換成後面的Long類型 ,如果在這裏判斷都是 false 了, 那麼,就不進行下面的比較處理了, 所以 是否加 L 就意味着java的默認傳入機制是不是