如何覆盖java.util.PriorityQueue包含函数?

时间:2011-04-20 03:58:40

标签: java generics override

我有一个PriorityQueue,它包含box类型的对象,这是我自己的类。如何通过仅查看对象框的一个属性来覆盖contains函数以返回true?

1 个答案:

答案 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>

相关问题