我用JDK9.0,為什么testListContains() 方法運行出來的結果不同
我用JDK9.0,為什么testListContains() 方法運行出來的結果不同:?
取得課程:C語言 備選課程是否包含課程:C語言,true 新創建課程:C語言 備選課程中是否包含課程:C語言,true
我用JDK9.0,為什么testListContains() 方法運行出來的結果不同:?
取得課程:C語言 備選課程是否包含課程:C語言,true 新創建課程:C語言 備選課程中是否包含課程:C語言,true
2018-03-16
舉報
2018-07-31
2018-03-16
以上答案采納,混個積分,嘻嘻
2018-03-16
自己疏忽了!抱歉!
后來看后續章節已經重寫了course類的equals()方法,而contains()方法實際內部調用了equals()方法。重新運行時忘記了之前已經重寫了course類的equals()方法。其中涉及equals()方法與"=="的區別,百度看到知乎大神的解答覺得不錯,放在下邊。就當是重新復習了下contains以及equals的重寫吧
知乎大神關于equals()方法與"=="的區別解析如下:
equals()方法與"=="區別在于前者是方法,后者是操作符。由于java不支持操作符重載(overlaoding),
"=="的行為對于每個對象來說與equals()是完全相同的,但是equals()可以基于業務
規則的不同而重寫(overlaoding)。另一需要注意的不同是"=="習慣用于原生(primitive)
類型之間的比較,而equals()僅用于對象之間的比較。