首页 > 解决方案 > Vavr try fold 希望在第一个参数中出现异常

问题描述

我将 GraphQL 与 Vavr 一起使用。

在第一个函数参数中,Try.fold 正在等待引发异常,但在我的情况下,我想返回一个 DataFetcherResult。

编译时,我收到以下错误

Object / Required type: DataFetcherResult<Result>

编译行时 vehicle -> DataFetcherResult.newResult().data(vehicle).build()

public DataFetcherResult<Vehicle> getVehicle() {
     return vehicleService.getVehicle()
        .fold(
            // Error because doesn't throw return an exception
            exception -> DataFetcherResult.newResult().error(new CustomGraphqlException(exception)),
            vehicle -> DataFetcherResult.newResult().data(vehicle).build()
        );
}

vehicleService.getVehicle()返回车辆尝试。

public Try<Vehicle> getVehicle() {
    return Try.of(() -> buildVehicle().stream().findFirst().get());
}

在成功和错误的情况下,我如何从 a Try<Vehicle>、 a中恢复?DataFetcher

标签: javajava-8functional-programminggraphqlvavr

解决方案


推荐阅读