List的contains方法老是返回false的解决法:
今天遇到一个奇怪的问题,
String hql="select ur.id.userId from SysUserRole ur,SysRole r where r.roleId=ur.id.roleId and r.roleName='经办人'";
List<String> sysRolesIds =sysProcessDao.find(hql);
上面的结过会返回List集合,存放的是String类型,也有数据返回 [33,22,66],没报错。但执行sysRolesIds.contains("33")这个语句老是返回false。
最后发现,userId在实体中是Integer类型,修改如下:
List<Integer> sysRolesIds =sysProcessDao.find(hql);
再执行sysRolesIds.contains("33")这个语句,返回true,原来是类型不匹配。
总结:一般来说集合中的方法contains老是返回false的错误,是因为两者类型不一致所致。
本文地址:http://yayihouse.com/yayishuwu/chapter/1007