java 空指针工具类

import org.springframework.lang.NonNull;
import org.springframework.lang.Nullable;
import pro.haichuang.framework.base.exception.ApplicationException;

import java.util.List;
import java.util.Map;
import java.util.Optional;
import java.util.Set;
import java.util.function.Supplier;

/**
 * 空指针工具类
 *
 */
public class NullUtils {

    /**
     * 空指针处理
     *
     * @param value 原始值
     * @param other 空指针时的值
     * @param    原始值类型
     * @return 处理后结果
     * @since 1.1.0.211021
     */
    @NonNull
    public static  T ofNullable(@Nullable T value, @NonNull T other) {
        return Optional.ofNullable(value).orElse(other);
    }

    /**
     * 空指针处理
     *
     * @param value 原始值
     * @param other 空指针时的值
     * @param    原始值类型
     * @return 处理后结果
     * @since 1.1.0.211021
     */
    @NonNull
    public static  T ofNullable(@Nullable T value, @NonNull Supplier other) {
        return Optional.ofNullable(value).orElseGet(other);
    }

    /**
     * 空指针处理
     *
     * @param value 原始值
     * @param other 空指针时的值
     * @param    原始值类型
     * @return 处理后结果
     * @since 1.1.0.211021
     */
    @NonNull
    public static  List ofNullable(@Nullable List value, @NonNull List other) {
        return Optional.ofNullable(value).orElse(other);
    }

    /**
     * 空指针处理
     *
     * @param value 原始值
     * @param other 空指针时的值
     * @param    原始值类型
     * @return 处理后结果
     * @since 1.1.0.211021
     */
    @NonNull
    public static  List ofNullable(@Nullable List value, @NonNull Supplier> other) {
        return Optional.ofNullable(value).orElseGet(other);
    }

    /**
     * 空指针处理
     *
     * @param value 原始值
     * @param other 空指针时的值
     * @param    原始值类型
     * @return 处理后结果
     * @since 1.1.0.211021
     */
    @NonNull
    public static  Set ofNullable(@Nullable Set value, @NonNull Set other) {
        return Optional.ofNullable(value).orElse(other);
    }

    /**
     * 空指针处理
     *
     * @param value 原始值
     * @param other 空指针时的值
     * @param    原始值类型
     * @return 处理后结果
     * @since 1.1.0.211021
     */
    @NonNull
    public static  Set ofNullable(@Nullable Set value, @NonNull Supplier> other) {
        return Optional.ofNullable(value).orElseGet(other);
    }

    /**
     * 空指针处理
     *
     * @param value 原始值
     * @param other 空指针时的值
     * @param    原始Key类型
     * @param    原始Value类型
     * @return 处理后结果
     * @since 1.1.0.211021
     */
    @NonNull
    public static  Map ofNullable(@Nullable Map value, @NonNull Map other) {
        return Optional.ofNullable(value).orElse(other);
    }

    /**
     * 空指针处理
     *
     * @param value 原始值
     * @param other 空指针时的值
     * @param    原始Key类型
     * @param    原始Value类型
     * @return 处理后结果
     * @since 1.1.0.211021
     */
    @NonNull
    public static  Map ofNullable(@Nullable Map value, @NonNull Supplier> other) {
        return Optional.ofNullable(value).orElseGet(other);
    }

    /**
     * 空指针处理
     *
     * @param value             原始值
     * @param exceptionSupplier 抛出异常
     * @param                原始值类型
     * @param                抛出异常类型
     * @return 处理后结果
     * @throws X 抛出异常
     * @since 1.1.0.211021
     */
    @NonNull
    public static  T ofNullableThrow(@Nullable T value, @NonNull Supplier exceptionSupplier) throws X {
        return Optional.ofNullable(value).orElseThrow(exceptionSupplier);
    }

    /**
     * 空指针处理
     *
     * @param value             原始值
     * @param exceptionSupplier 抛出异常
     * @param                原始值类型
     * @param                抛出异常类型
     * @return 处理后结果
     * @throws X 抛出异常
     * @since 1.1.0.211021
     */
    @NonNull
    public static  List ofNullableThrow(@Nullable List value, @NonNull Supplier exceptionSupplier) throws X {
        return Optional.ofNullable(value).orElseThrow(exceptionSupplier);
    }

    /**
     * 空指针处理
     *
     * @param value             原始值
     * @param exceptionSupplier 抛出异常
     * @param                原始值类型
     * @param                抛出异常类型
     * @return 处理后结果
     * @throws X 抛出异常
     * @since 1.1.0.211021
     */
    @NonNull
    public static  Set ofNullableThrow(@Nullable Set value, @NonNull Supplier exceptionSupplier) throws X {
        return Optional.ofNullable(value).orElseThrow(exceptionSupplier);
    }

    /**
     * 空指针处理
     *
     * @param value             原始值
     * @param exceptionSupplier 抛出异常
     * @param                原始Key类型
     * @param                原始Value类型
     * @param                抛出异常类型
     * @return 处理后结果
     * @throws X 抛出异常
     * @since 1.1.0.211021
     */
    @NonNull
    public static  Map ofNullableThrow(@Nullable Map value, @NonNull Supplier exceptionSupplier) throws X {
        return Optional.ofNullable(value).orElseThrow(exceptionSupplier);
    }
}

你可能感兴趣的:(java工具类,java,开发语言,后端)