list.contains(o),系统会对list中的每个元素e调用o.equals(e),方法,加入list中有n个元素,那么会调用n次o.equals(e),只要有一次o.equals(e)返回了true,那么list.contains(o)返回true,否则返回false。
//action中进行判断
public synchronized String addUser() { //业务逻辑的验证 if (Util.list.contains(this.user)) { this.message = "已经存在相同用户,不能添加"; return "input"; } //.... }
?
//model... 重写equals()?
@Override public boolean equals(Object obj) { if (obj != null && obj instanceof User && ((User) obj).getName().trim().equals(this.name.trim()) && ((User) obj).getAddress().trim().equals(this.address.trim())) return true; else { return false; } }
还要重写hashcode();??
?
?