diff --git a/src/main/java/de/nclazz/commons/func/Checked.java b/src/main/java/de/nclazz/commons/func/Checked.java index 041c030..f9a9d18 100644 --- a/src/main/java/de/nclazz/commons/func/Checked.java +++ b/src/main/java/de/nclazz/commons/func/Checked.java @@ -42,6 +42,11 @@ public abstract class Checked { void run() throws Exception; } + @FunctionalInterface + public interface CheckedSupplier { + T get() throws Exception; + } + public static Consumer checked(CheckedConsumer consumer) { return t -> { try { @@ -103,7 +108,7 @@ public abstract class Checked { } - public static Runnable checked(Runnable runnable) { + public static Runnable checked(CheckedRunnable runnable) { return () -> { try { runnable.run(); @@ -113,5 +118,15 @@ public abstract class Checked { }; } + public static Supplier checked(CheckedSupplier supplier) { + return () -> { + try { + return supplier.get(); + }catch(Exception e) { + throw new RuntimeException(e); + } + }; + } + }