BlueJ Chpt 4 - Аукционный проект - Как заставить работать метод removeLot после ввода нового лота - PullRequest
0 голосов
/ 14 марта 2010

Я изучаю Java через BlueJ

Я хотел бы добавить метод removeLot в класс аукциона в BlueJ Chpt 4. Это также включает возврат лота с заданным номером или нулем, если такого лота нет.

Если вы введете, скажем, 5 лотов, а затем используете метод удаления, этот код удаляет любой лот, который вы укажете. Однако, если вы вводите новый лот после использования метода removeLot - появляется внутреннее сообщение об ошибке, касающееся нумерации лотов.

Есть идеи?

Спасибо Элейн

public Lot removeLot(int number) {
    if((number >= 1)) {           

    }
    Lot lot = getLot(number);
    if(lot != null) {
        lots.remove(lot);
    }
    return lot;
}

1 Ответ

0 голосов
/ 15 марта 2010

Я думаю, что в вашем коде есть опечатка (или что-то испортило форматирование). Метод, вероятно, должен быть:

public Lot removeLot(int number) {
    Lot lot = null;
    if((number >= 1)) {
        lot = getLot(number);
    }
    if(lot != null) {
        lots.remove(lot);
    }
    return lot;
}

Я протестировал его с помощью следующего кода, и он работал нормально:

Auction a = new Auction();
a.enterLot("a1");
a.enterLot("a2");
a.enterLot("a3");
a.showLots();
a.removeLot(3);
a.showLots();
a.enterLot("a4");
a.showLots();

Вывод был:

1: a1    (No bid)
2: a2    (No bid)
3: a3    (No bid)
1: a1    (No bid)
2: a2    (No bid)
1: a1    (No bid)
2: a2    (No bid)
4: a4    (No bid)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...