List 的removeall需要重写equals才有效

removeall重写equal

list<A> a list如果要调用remove(bo),或者removeAll(a) 需要重写A 的equals方法,因为remove,removeAll方法时两个从左边移除与右边相等的对象,

那么在未重写equals方法的情况下,用默认的,默认的equals方法时比较两个对象的存储位置是否一致,以确定相等,这显然不符合业务需要,我们需要重写,让其

根据id等少数几个字段判断(有些方法会自动调用equals,然后根据equals返回的结果再执行相应的操作,比如list的removeAll,为了符合业务需要需要重写)

A Bean:类中

public class OpmUser implements Serializable {

 public boolean equals(Object destination)

 {

   boolean retVal = false;

   if ((destination != null) && (destination.getClass().equals(getClass())))

   {

   OpmUser bean = (OpmUser)destination;

     if ((bean.getId() == null) && (getId() == null)) {

       retVal = true;

     } else if ((bean.getId() != null) && (bean.getId().equals(getId()))) {

       retVal = true;

     }

   }

   return retVal;

 }

}

@RequestMapping(value="/system/opmRole/userRole")

public String userRole(OpmRole opmRole,HttpServletRequest request,Model modle) {

//OpmUser u= new OpmUser();

//u.setId(opmRole.ge);

//opmUserService.getOpmUser(u);

//modle.addAttribute("vo", opmUserService.getOpmUser(u));

String id ="";//当前分配用户的角色Id

String organid ="";

String roleId="";

Subject currentUser = SecurityUtils.getSubject();

Session session = currentUser.getSession();

OpmUser user =(OpmUser) session.getAttribute("currentUser");

OpmUserRole u = new OpmUserRole();

u.setUserid(user.getId());

id=opmRole.getId();

List<OpmUserRole> ur=opmUserRoleService.getOpmUserRole(u);//本系统中是一个用户一个角色

if((opmRole.getId()==null||"".equals(opmRole.getId()))&&(ur!=null&&ur.size()>0&&ur.get(0)!=null)){

id= ur.get(0).getRoleid();

}

if(ur!=null&&ur.size()>0&&ur.get(0)!=null){

roleId=ur.get(0).getRoleid();//登录用户角色Id

}

Map<String,Object> param1 = new HashMap<String,Object>();

param1.put("roleId", id);

TbCusMarkVo org= opmRoleService.getOrganByRoleId(param1);

Map<String,Object> param = new HashMap<String,Object>();

param.put("organid", org.getMarketKey()+"");

List<OpmUser> usersAll= opmUserService.getUserByOrgId(param);

Map<String,Object> param2 = new HashMap<String,Object>();

param2.put("rId", id);

List<OpmUser> usersL= opmUserService.getUserByRoleId(param2);

usersAll.removeAll(usersL);

modle.addAttribute("id", opmRole.getId());

modle.addAttribute("organid", opmRole.getOrganid());

modle.addAttribute("usersL", usersL);

modle.addAttribute("usersR", usersAll);

if(opmRole.getOrganid()!=null&&!"".equals(opmRole.getOrganid())){

TbCusMark tbCusMark = new TbCusMark();

tbCusMark.setMarketKey(BigDecimal.valueOf(Long.valueOf(opmRole.getOrganid())));

tbCusMark = tbCusMarkService.getMark(tbCusMark);

modle.addAttribute("organName", tbCusMark.getMarketName());

}

if(!"".equals(opmRole.getId())&&opmRole.getId()!=null){

OpmRole ro1 = new OpmRole();

ro1.setId(opmRole.getId());

OpmRole ro = opmRoleService.getOpmRole(ro1);

if(ro!=null){

modle.addAttribute("vo", ro);

}

}

return "/system/opmRole/userRole";

}

猜你喜欢

转载自yuhuiblog6338999322098842.iteye.com/blog/2312357
今日推荐