NutzCN Logo
问答 lambda 判断 列表 是否已经存在 值contains
发布于 1838天前 作者 Hamming 2653 次浏览 复制 上一个帖子 下一个帖子
标签:

用户 有一个 角色 用System.out.println(user.getRoles().contains(role));判断 都是 false; 这个是为什么呢

User user = userService.fetch(id);
		userService.fetchLinks(user,"dept|roles");
		List<Role> roles = roleService.query(Cnd.where("status","=",false).and("del_flag","=",false));
		roles.forEach(role -> {
			if(user.getRoles()!=null && user.getRoles().size()>0){
				System.out.println(user.getRoles().contains(role));
				role.setFlag(user.getRoles().contains(role));
			}
		});
		req.setAttribute("user",user);
		req.setAttribute("roles",roles);
3 回复

Role的equsl方法没覆写

话说,你那堆帖子,解决了就结一下帖呀

哦哦 重写 解决了

    @Override
    public boolean equals(Object obj) {
        if (obj instanceof Role) {
            Role role = (Role) obj;
//            System.out.println("equal"+ role.id);
            return (id.equals(role.id));
        }
        return super.equals(obj);
    }
添加回复
请先登陆
回到顶部