Ограничение ввода функции определенными целыми числами

Какова наилучшая практика, чтобы ограничить входные функции функций для конкретных целых чисел в Java?

скажем

public Car(CarColor carcolor, (Range limited integer value) carnum) {
    // Rest of the code
}

Для строк лучше всего использовать перечисление как

enum CarColor{
    Blue, Black, Red, Green
}

Но это не будет работать для целых чисел

enum CarNumber{
    1,2,3,4,5
}

Я придумал вот что:

enum CarNumber{
    c1, c2, c3, c4, c5;

    @Override
    public String toString() {
            return this.name().substring(1);
    }
}

Но я уверен, что это не очень хорошая практика. Я также не хочу, чтобы функция вызывалась любым целым числом и проверялась с помощью if внутри функции, как показано ниже. Функция не должна вызываться и ограничиваться перечислимым стилем.

public Car(CarColor carcolor, int carnum) {
    if (carnum < 0 || carnum > 5)
        return ;
    // Rest of the code
}

1 ответ

Возможно, вам лучше всего создать класс, который принимает только переменную, которая находится в определенном диапазоне, а затем принимает только экземпляр этого класса в качестве параметра в вашей функции. Таким образом, ваша функция не должна будет ничего проверять, потому что она уже знает, что она не будет вне диапазона.

Другие вопросы по тегам