Ogranicz wartość do zakresu jednym czytelnym wywołaniem.
Porównanie kodu
✕ 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]
Widzisz problem z tym kodem? Daj nam znać.
Dlaczego nowoczesne podejście wygrywa
Samo-dokumentujący
clamp(value, min, max) jest jednoznaczne.
Mniej podatny na błędy
Koniec z przypadkową zamianą kolejności min/max.
Wszystkie typy numeryczne
Działa z int, long, float i double.
Stare podejście
Zagnieżdżone min/max
Nowoczesne podejście
Math.clamp()
Od JDK
21
Poziom trudności
Początkujący
Wsparcie JDK
Math.clamp()
Dostępne
Szeroko dostępne od JDK 21 LTS (wrzesień 2023)
Jak to działa
Math.clamp(value, min, max) ogranicza wartość do zakresu [min, max]. Czytelniejsze niż zagnieżdżone Math.min/Math.max i dostępne dla int, long, float i double.
Powiązana dokumentacja
Dowód