我有一个PriorityQueue,它包含box类型的对象,这是我自己的类。如何通过仅查看对象框的一个属性来覆盖contains函数以返回true?
答案 0 :(得分:2)
如果我理解正确你想要这样的东西:
public class BoxPriorityQueue extends PriorityQueue<Box> {
@Override
public boolean contains(Object obj) {
if (!(obj instanceof Box)) {
return false;
}
Box box = (Box) obj;
return box.getAttribute();
}
}
不幸的是,泛型不适用于contains()
方法,所以你必须强制转换它。否则,此BoxPriorityQueue
只会占用Box
个对象,因为它会延伸PriorityQueue<Box>
。