1. 业务场景
在我们日常开发各种业务场景中,经常会判断字段之间的对等,比如会用到这些方法StringUtils.isNotBank(XXX) , "XXX".equals("XXX")。
如果是两个对象之间,要作为对比,直接使用默认的equals方法就会出现问题,例如 Student A = studentDao.selectById(12138),
Student B = studentDao.selectById(12138),A.equals(B) ——> false。实际上,在我们业务处理上,这两个对象应该属于同一个人,也就是希望返回true。
另外有一个场景,List<Student> list ,希望list能简便获取到顺序排序的列表,如果用for循环则过于麻烦,结合上述说明,做出技能解析。
2. 编写示例代码
import
3. 测试用例与结果分析
A. 重写equals方法,两个对象的主键ID相等,业务上认为两个对象是一样。
public
结果如下:
![f3aaa9b67e21db9ac8fd1b2117aa6957.png](https://i-blog.csdnimg.cn/blog_migrate/16334e43d3b480eb9faefb7652cf1439.jpeg)
经过测试符合期望,重写该方法之后,list.contains(XXX)也是同样有效果的。如下图
![0e3f28c9c31f78fe7741b780365318da.png](https://i-blog.csdnimg.cn/blog_migrate/a9170251616b81d863b68400d7bedea2.jpeg)
B. 实现 Comparable<T>接口,更方便的获取List<Object>顺序列表
public
![3bb2a240b408e00fb1e2d40867027d7a.png](https://i-blog.csdnimg.cn/blog_migrate/1009be8f83e4a0239c22f09db92e8eb3.jpeg)
经过测试验证符合预期结果,而且比较简便的用一句代码将list进行排序。