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

来源:6-1 学生选课---判断 List 中课程是否存在

craxy

2018-03-16 09:59

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

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

http://img4.mukewang.com/5aab24fd00013a0610650265.jpg

http://img1.mukewang.com/5aab24ec0001e54603480103.jpg

写回答 关注

3回答

  • 969999666696
    2018-07-31 09:43:08
    说得好!
  • craxy
    2018-03-16 11:24:27

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

  • craxy
    2018-03-16 11:21:26

    自己疏忽了!抱歉!

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

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

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

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

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

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


    craxy

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

    2018-03-16 11:25:05

    共 1 条回复 >

Java入门第三季

Java中你必须懂得常用技能,不容错过的精彩,快来加入吧

409792 学习 · 4340 问题

查看课程

相似问题