gpt4 book ai didi

java - Map 方法引用链

转载 作者:IT老高 更新时间:2023-10-28 21:16:02 24 4
gpt4 key购买 nike

我正在使用 Twitter4J。但我要问的问题更笼统。我想访问给定推文的用户 ID。目前,我有以下两种选择:

//Option 1
stream.map(status -> status.getUser().getId())
.forEach(System.out::println);

//Option 2:
stream.map(Status::getUser)
.map(User:getId)
.forEach(System.out::println);

我不喜欢第一个选项中的 lambda 表达式,也不喜欢在第二个选项中被迫调用两个 maps。有没有办法制作方法引用链?我知道 Status::getUser::getId 不起作用,但我想知道是否有替代方法。

最佳答案

不,这是两种方法。其他任何事情最终都会变得不太清楚。

但是,既然你问了,这里有一些选择。

static<T,U,R> Function<T,R> chain(
Function<? super T, ? extends U> f1,
Function<? super U, ? extends R> f2) {
return t -> f2.apply(f1.apply(t));
}

stream.map(chain(Status::getUser, User::getId))

或者

static<T,R> Function<T,R> func(Function<T,R> f) {
return f;
}

stream.map(func(Status::getUser).andThen(User::getId))

关于java - Map 方法引用链,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26920866/

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