package com.qianwen.core.tool.support; import java.util.Objects; import java.util.function.Consumer; import java.util.function.Function; import java.util.function.Supplier; import com.qianwen.core.tool.utils.Exceptions; import org.springframework.lang.Nullable; public class Try { @FunctionalInterface public interface UncheckedConsumer { @Nullable void accept(@Nullable T t) throws Exception; } @FunctionalInterface public interface UncheckedFunction { @Nullable R apply(@Nullable T t) throws Exception; } @FunctionalInterface public interface UncheckedSupplier { @Nullable T get() throws Exception; } public static Function of(UncheckedFunction mapper) { Objects.requireNonNull(mapper); return t -> { try { return mapper.apply(t); } catch (Exception e) { throw Exceptions.unchecked(e); } }; } public static Consumer of(UncheckedConsumer mapper) { Objects.requireNonNull(mapper); return t -> { try { mapper.accept(t); } catch (Exception e) { throw Exceptions.unchecked(e); } }; } public static Supplier of(UncheckedSupplier mapper) { Objects.requireNonNull(mapper); return () -> { try { return mapper.get(); } catch (Exception e) { throw Exceptions.unchecked(e); } }; } }