develop.toolkit.base.utils.CompareAdvice Maven / Gradle / Ivy
package develop.toolkit.base.utils;
import lombok.NonNull;
/**
* 比较增强工具
*
* @author qiushui on 2019-08-23.
*/
@SuppressWarnings("unused")
public final class CompareAdvice {
/**
* 小于
*/
public static > boolean lt(@NonNull T a, @NonNull T b) {
return a.compareTo(b) < 0;
}
/**
* 小于等于
*/
public static > boolean lte(@NonNull T a, @NonNull T b) {
return a.compareTo(b) <= 0;
}
/**
* 大于
*/
public static > boolean gt(@NonNull T a, @NonNull T b) {
return a.compareTo(b) > 0;
}
/**
* 大于等于
*/
public static > boolean gte(@NonNull T a, @NonNull T b) {
return a.compareTo(b) >= 0;
}
/**
* 等于
*/
public static > boolean eq(@NonNull T a, @NonNull T b) {
return a.compareTo(b) == 0;
}
/**
* 在之间(闭区间)
*/
public static > boolean between(@NonNull T a, @NonNull T start, @NonNull T end) {
return gte(a, start) && lte(a, end);
}
/**
* 在之间(左闭区间)
*/
public static > boolean betweenLeft(@NonNull T a, @NonNull T start, @NonNull T end) {
return gte(a, start) && lt(a, end);
}
/**
* 在之间(右闭区间)
*/
public static > boolean betweenRight(@NonNull T a, @NonNull T start, @NonNull T end) {
return gt(a, start) && lte(a, end);
}
/**
* 在之间(开区间)
*/
public static > boolean betweenOpen(@NonNull T a, @NonNull T start, @NonNull T end) {
return gt(a, start) && lt(a, end);
}
/**
* 返回两者中较大值
*/
public static > T max(@NonNull T a, @NonNull T b) {
return gte(a, b) ? a : b;
}
/**
* 返回两者中较小值
*/
public static > T min(@NonNull T a, @NonNull T b) {
return lte(a, b) ? a : b;
}
}