Как переопределить функцию java.util.PriorityQueue? - PullRequest
0 голосов
/ 20 апреля 2011

У меня есть PriorityQueue, которая содержит объекты типа box, который является моим собственным классом. Как я могу переопределить функцию contains, чтобы она возвращала true, просматривая только один атрибут поля объекта?

1 Ответ

2 голосов
/ 20 апреля 2011

Если я правильно понимаю, вы хотите что-то вроде этого:

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>.

.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...