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