我用JDK9.0,为什么testListContains() 方法运行出来的结果不同:
取得课程:C语言 备选课程是否包含课程:C语言,true 新创建课程:C语言 备选课程中是否包含课程:C语言,true
说得好!
以上答案采纳,混个积分,嘻嘻
自己疏忽了!抱歉!
后来看后续章节已经重写了course类的equals()方法,而contains()方法实际内部调用了equals()方法。重新运行时忘记了之前已经重写了course类的equals()方法。其中涉及equals()方法与"=="的区别,百度看到知乎大神的解答觉得不错,放在下边。就当是重新复习了下contains以及equals的重写吧
知乎大神关于equals()方法与"=="的区别解析如下:
equals()方法与"=="区别在于前者是方法,后者是操作符。由于java不支持操作符重载(overlaoding),
"=="的行为对于每个对象来说与equals()是完全相同的,但是equals()可以基于业务
规则的不同而重写(overlaoding)。另一需要注意的不同是"=="习惯用于原生(primitive)
类型之间的比较,而equals()仅用于对象之间的比较。