Java 8 在Java8中,是否有一个util函数将抛出异常的供应商转换为可选的?

Java 8 在Java8中,是否有一个util函数将抛出异常的供应商转换为可选的?,java-8,optional,vavr,Java 8,Optional,Vavr,我正在使用vavr,发现在选项中没有这样的util,在java8的任何其他包中是否有类似的方便util public final class Utils { public static <T> Option<T> optionOfThrowableSupplier(Supplier<T> supplier){ try { T x = supplier.get(); return Optio

我正在使用vavr,发现在
选项中没有这样的util,在java8的任何其他包中是否有类似的方便util

public final class Utils {
    public static <T> Option<T> optionOfThrowableSupplier(Supplier<T> supplier){
        try {
            T x = supplier.get();
            return Option.some(x);
        } catch (Exception e) {
            return Option.none();
        }
    }
}
公共最终类Utils{
公用静态选项选项为可移动供应商(供应商){
试一试{
T x=supplier.get();
返回选项。部分(x);
}捕获(例外e){
返回选项。无();
}
}
}

似乎不存在这样的实用程序。我建议创建一个
Supplier
包装类来解决这个问题,它将给定的
Supplier
转换为
Supplier
,并且
get
方法将返回
选项。none()引发异常时

导入java.util.function.Supplier;
导入io.vavr.control.Option;
公共类HandleExceptionOption供应商实现供应商{
公共静态void main(字符串[]args){
供应商无错误供应商=()->{
返回“成功”;
};
供应商错误供应商=()->{
抛出新的RuntimeException(“”);
};
System.out.println(新HandleExceptionOptionSupplier(noErrorSupplier.get())
.getOrElse(“无要素”);
System.out.println(新HandleExceptionOptionSupplier(errorSupplier.get)()
.getOrElse(“无要素”);
}
私人最终供应商-一次性供应商;
/**
*当throwableSupplier没有错误时返回{@link Option#some(Object)},
*当出现异常时,返回{@link Option#none()}
*/
@凌驾
公共选项get(){
试一试{
T value=throwableprovider.get();
返回选项。一些(值);
}捕获(例外e){
返回选项。无();
}
}
/**
*@param throwableprovider要包装的供应商
*/
公共手例外选项供应商(供应商抛弃供应商){
this.throwableprover=throwableprover;
}
}
为什么不:

Try.of(() -> "throwable supplier").toOption()

?可调用的
可能更适合于“可能引发
异常的
供应商