gpt4 book ai didi

java - 创建 FluentIterable 链作为函数,而不是立即应用

转载 作者:行者123 更新时间:2023-12-01 11:59:14 26 4
gpt4 key购买 nike

有没有办法创建 FluentIterable 函数链,但延迟绑定(bind)到特定集合?

例如:

Function<Collection<T>, T> chooseBy(Function<T, KEY> transform, KEY compare) {
return FluentIterable.transform(transform).first(Predicates.equalTo(compare)).get();
}

最佳答案

不能直接创建,但您可以创建 Function<Collection<T>, U> (请注意,它实际上会转换为 U )您自己:

public static <T, U> Function<Collection<T>, U> chooseBy(final Function<T, U> transform,
final U compare) {
return new Function<> {
@Override
public U apply(Collection<T> input) {
return FluentIterable.from(input)
.transform(transform)
.firstMatch(Predicates.equalTo(compare))
.get();
}
}
}

如果您实际上指的是 Function<Collection<T>, T> ,那就是

public static <T, U> Function<Collection<T>, T> chooseBy(final Function<T, U> transform,
final U compare) {
return new Function<> {
@Override
public U apply(Collection<T> input) {
return FluentIterable.from(input)
.firstMatch(
Predicates.compose(Predicates.equalTo(compare), transform))
.get();
}
}
}

关于java - 创建 FluentIterable 链作为函数,而不是立即应用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28112365/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com