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();