考虑到我有一个Student只有 getter 和 setter的 Java 对象,我无法更改,以及两个 Lists——students1而且students2都是 type ArrayList<Student>。
如何students1.removeAll(students2)通过传递我自己的equals()方法来调用?
这是因为我无法修改Student类。
好吧,一种选择可能是在这里使用装饰器模式,然后将Student类包装在一个新类中,然后equals()使用您想要的任何新逻辑覆盖该方法,例如
public class YourStudent {
private Student instance;
public YourStudent() { ... }
@Override
public boolean equals(Object obj) { ... }
}
Run Code Online (Sandbox Code Playgroud)