对比新文件 |
| | |
| | | package org.springblade.core.tool.support; |
| | | |
| | | import org.springblade.core.tool.utils.Exceptions; |
| | | import org.springframework.lang.Nullable; |
| | | |
| | | import java.util.Objects; |
| | | import java.util.function.Consumer; |
| | | import java.util.function.Function; |
| | | import java.util.function.Supplier; |
| | | |
| | | /** |
| | | * Lambda 鍙楁寮傚父澶勭悊 |
| | | * https://segmentfault.com/a/1190000007832130 |
| | | * |
| | | * @author Chill |
| | | */ |
| | | public class Try { |
| | | |
| | | public static <T, R> Function<T, R> of(UncheckedFunction<T, R> mapper) { |
| | | Objects.requireNonNull(mapper); |
| | | return t -> { |
| | | try { |
| | | return mapper.apply(t); |
| | | } catch (Exception e) { |
| | | throw Exceptions.unchecked(e); |
| | | } |
| | | }; |
| | | } |
| | | |
| | | public static <T> Consumer<T> of(UncheckedConsumer<T> mapper) { |
| | | Objects.requireNonNull(mapper); |
| | | return t -> { |
| | | try { |
| | | mapper.accept(t); |
| | | } catch (Exception e) { |
| | | throw Exceptions.unchecked(e); |
| | | } |
| | | }; |
| | | } |
| | | |
| | | public static <T> Supplier<T> of(UncheckedSupplier<T> mapper) { |
| | | Objects.requireNonNull(mapper); |
| | | return () -> { |
| | | try { |
| | | return mapper.get(); |
| | | } catch (Exception e) { |
| | | throw Exceptions.unchecked(e); |
| | | } |
| | | }; |
| | | } |
| | | |
| | | @FunctionalInterface |
| | | public interface UncheckedFunction<T, R> { |
| | | /** |
| | | * apply |
| | | * |
| | | * @param t |
| | | * @return |
| | | * @throws Exception |
| | | */ |
| | | @Nullable |
| | | R apply(@Nullable T t) throws Exception; |
| | | } |
| | | |
| | | @FunctionalInterface |
| | | public interface UncheckedConsumer<T> { |
| | | /** |
| | | * accept |
| | | * |
| | | * @param t |
| | | * @throws Exception |
| | | */ |
| | | @Nullable |
| | | void accept(@Nullable T t) throws Exception; |
| | | } |
| | | |
| | | @FunctionalInterface |
| | | public interface UncheckedSupplier<T> { |
| | | /** |
| | | * get |
| | | * |
| | | * @return |
| | | * @throws Exception |
| | | */ |
| | | @Nullable |
| | | T get() throws Exception; |
| | | } |
| | | } |