为了账号安全,请及时绑定邮箱和手机立即绑定

我用JDK9.0,为什么testListContains() 方法运行出来的结果不同

我用JDK9.0,为什么testListContains() 方法运行出来的结果不同: 

取得课程:C语言 备选课程是否包含课程:C语言,true 新创建课程:C语言 备选课程中是否包含课程:C语言,true

http://img1.sycdn.imooc.com//5aab24fd00013a0610650265.jpg

http://img1.sycdn.imooc.com//5aab24ec0001e54603480103.jpg

正在回答

3 回答

说得好!
0 回复 有任何疑惑可以回复我~

以上答案采纳,混个积分,嘻嘻

0 回复 有任何疑惑可以回复我~

自己疏忽了!抱歉!

后来看后续章节已经重写了course类的equals()方法,而contains()方法实际内部调用了equals()方法。重新运行时忘记了之前已经重写了course类的equals()方法。其中涉及equals()方法与"=="的区别,百度看到知乎大神的解答觉得不错,放在下边。就当是重新复习了下contains以及equals的重写吧

知乎大神关于equals()方法与"=="的区别解析如下:

equals()方法与"=="区别在于前者是方法,后者是操作符。由于java不支持操作符重载(overlaoding),

"=="的行为对于每个对象来说与equals()是完全相同的,但是equals()可以基于业务

规则的不同而重写(overlaoding)。另一需要注意的不同是"=="习惯用于原生(primitive)

类型之间的比较,而equals()仅用于对象之间的比较。


0 回复 有任何疑惑可以回复我~
#1

craxy 提问者

以上答案采纳,混个积分,嘻嘻
2018-03-16 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

我用JDK9.0,为什么testListContains() 方法运行出来的结果不同

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信