All Downloads are FREE. Search and download functionalities are using the official Maven repository.

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;
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy