研究了另一个答案中提供的通用钳位方法后,值得注意的是,此方法对原始类型有装箱/拆箱的注意事项。
public static <T extends Comparable<T>> T clamp(T val, T min, T max) {...}float clampedValue = clamp(value, 0f, 1f);这将使用
Float包装器类,导致3个框操作,每个参数一个,对返回类型1个取消框操作。
为了避免这种情况,我只会坚持写长篇幅,或者对想要的类型使用非泛型函数:
public static float clamp(float val, float min, float max) { return Math.max(min, Math.min(max, val));}然后,只需为所需的每种原始类型重载相同的方法即可。



