在java中返回一个Supplier<T>

问题描述

我正在查看resilience4j代码以了解它们如何实现装饰器,我可以看到供应商/消费者功能接口。我仍在尝试了解如何在编码时利用这些接口。我的问题是基于这种方法

static <T> supplier<Future<T>> decorateFuture(Bulkhead bulkhead,supplier<Future<T>> supplier) {
    return () -> {
        if (!bulkhead.tryAcquirePermission()) {
            final CompletableFuture<T> promise = new CompletableFuture<>();
            promise.completeExceptionally(BulkheadFullException.createBulkheadFullException(bulkhead));
            return promise;
        }
        try {
            return new BulkheadFuture<>(bulkhead,supplier.get());
        } catch (Throwable e) {
            bulkhead.onComplete();
            throw e;
        }
    };

有几个问题, 它是否因为定义为 lambda 而返回 supplier

这些装饰器是如何构造的,请谁能提供一个简单的例子,

 supplier<String> decoratedsupplier = Bulkhead
            .decoratesupplier(bulkhead,() -> "This can be any method which returns: 'Hello");

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)