我有一个 List<Person> 对象,其中 Person 的定义如下:
public Person {
private firstName;
private lastName;
//getter and setter methods
public boolean equals(Object obj) {
return lastName.equals(obj.toString());
}
}
现在,我想查看这个 List<Person> 是否包含特定的姓氏。
if(myList.contains("Smith"))
System.out.println("yay!");
然而,contains方法的定义是当(o==null ? e==null : o.equals(e))成立时返回true。因此,在此实例中,它使用了String.equals(Person)而不是Person.equals(String)。有没有简单的方法可以解决这个问题,或者我必须编写自己的逻辑来实现contains方法?