繁体   English   中英

有没有标准的方法来转换 java.util.function,Consumer<T> 进入一个 java.util.function.Function<T, Void>

[英]Is there a standard way to convert a java.util.function,Consumer<T> into a java.util.function.Function<T, Void>

我有一个Consumer<T> ,我想将其转换为Function<T, Void>

我可以通过使用来实现

public <T> Function<T, Void> consumerToFunction(Consumer<T> consumer)
{
    return x -> {
        consumer.accept(x);
        return null;
    };
}

但我怀疑在 JDK 中或在公共库中可能已经存在类似的东西。

看起来您需要将Consumer<T>调整为Function<T, R> 您已经创建了一个很好的适配器模式示例。

[T]适配器模式是一种软件设计模式,它允许从另一个接口使用现有类的接口。

你让一个Consumer被一个Function

我知道功能接口之间没有 JDK 内置转换器,但这似乎是应用标准模式来解决问题的好方法。

不存在标准方法,但这应该可以解决问题:

Function<T, Void> adapt(final Consumer<T> consumer) {
    return t -> {
        consumer.accept(t);
        return null;
    };
}

这是遵循@rgettman接受的答案中提到的适配器模式。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM