这是代码
我也重写了equals方法,因为百度上说是因为没重写
后来重写了也还是这样显示false,没重写也是false
不知道问题出在哪里,难道说是request.getParameter得到的数据有问题?,然后我查了一下说可能是字节码问题,于是我
目前需求是遍历List<ABC> news = service.findcopy(); 比对request传的username值
username的类型为String,而news集合的元素类型为ABC,这样equal比对肯定不相等
应该获取ABC属性值,进行比对才合理
equals 方法 24行 getClass,比较他们类型的时候会返回false,因为一个是String,另一个是ABC
直接将List 里的ABC类型转换为String类型即可比较,重写equal方法需同时重写hashCode方法,
首先你这个是对象ABC和字符串String之间比较,equals方法在对象和字符串之间是不一样的。
对象的equals方法比较的是存储数据时的hashCode值,字符串的equals方法,是重写过的,就不是比较存储时的hashCode的值,是hashCode值所指向的具体地址的值,就是“123”。
你可以百度一下对象和字符串的equals方法区别,就知道了
ABC类对象和String对象比较,你的equals方法的第二行过不去,类型不匹配,你可以debug一下,在equals方法里打个断点