Date/Time Начинающий

Ограничьте значение диапазоном с помощью единственного понятного вызова.

✕ Java 8
// Clamp value between min and max
int clamped =
    Math.min(Math.max(value, 0), 100);
// or: min and max order confusion
✓ Java 21+
int clamped =
    Math.clamp(value, 0, 100);
// value constrained to [0, 100]
Заметили проблему в этом коде? Сообщите нам.
📖

Самодокументируемый

clamp(value, min, max) однозначен.

🛡️

Меньше ошибок

Больше никакой случайной перестановки порядка min и max.

🎯

Все числовые типы

Работает с int, long, float и double.

Старый подход
Вложенные min/max
Современный подход
Math.clamp()
Начиная с JDK
21
Сложность
Начинающий
Math.clamp()
Доступно

Широко доступен начиная с JDK 21 LTS (сентябрь 2023)

Math.clamp(value, min, max) ограничивает значение диапазоном [min, max]. Понятнее, чем вложенные Math.min/Math.max, и доступен для int, long, float и double.