Не вызывается метод canAddCar()

По условию задачи, когда парковка пустая count == 0 должно выводиться сообщение об ошибке с текстом: "Parking is full!" Но метод не срабатывает. Почему?

package com.example.demo;

import org.springframework.shell.Availability;
import org.springframework.shell.standard.ShellComponent;
import org.springframework.shell.standard.ShellMethod;
import org.springframework.shell.standard.ShellMethodAvailability;
import org.springframework.shell.standard.ShellOption;

import java.text.MessageFormat;
import java.util.HashMap;
import java.util.Map;

@ShellComponent
public class ParkingShell {

    private final Map<Integer, Integer> slots = new HashMap<>();

    @ShellMethod(key = "i")
    public String init(@ShellOption(value = "b") int big,
                       @ShellOption(value = "m") int medium,
                       @ShellOption(value = "s") int small) {
        slots.put(1, big);
        slots.put(2, medium);
        slots.put(3, small);

        return MessageFormat.format("Slots: [big: {0}, medium: {1}, small: {2}]", big, medium, small);
    }

    @ShellMethod(key = "a")
    @ShellMethodAvailability("canAddCar")
    public String addCar(int carType) {
        int newValue = slots.get(carType) - 1;

        if (newValue >= 0) {
            slots.put(carType, newValue);
            return "Car was parking";
        }

        return "Not enough space fore parking";
    }

    public Availability canAddCar() {
        int count = 0;
        for (Map.Entry<Integer, Integer> entry : slots.entrySet()) {
            int v = entry.getKey();
            count += v;
        }

        return count == 0
                ? Availability.unavailable("Parking is full!")
                : Availability.available();
    }
}


Ответы (1 шт):

Автор решения: Дмитрий Рихтер

В логике ошибка. Поменяйте int v = entry.getKey(); на int v = entry.getValue();

→ Ссылка