Ограничение ввода функции определенными целыми числами
Какова наилучшая практика, чтобы ограничить входные функции функций для конкретных целых чисел в 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 ответ
Возможно, вам лучше всего создать класс, который принимает только переменную, которая находится в определенном диапазоне, а затем принимает только экземпляр этого класса в качестве параметра в вашей функции. Таким образом, ваша функция не должна будет ничего проверять, потому что она уже знает, что она не будет вне диапазона.