Java 重构番石榴&x27;s Iterables.Cactoos中等效的变换和函数
我正在将Google Guava库的一些用法重构为库,我很难找到函数类和Iterables.transform方法的等效实现,使用Cactoos库作为替换 示例(来自): 新连接文本( " ", 易变( repo.languages(), 新函数(){ @凌驾 公共字符串应用(最终语言lang){ 返回String.format(“#%s”,lang.name()); } } ) ).asString()Java 重构番石榴&x27;s Iterables.Cactoos中等效的变换和函数,java,oop,guava,cactoos,Java,Oop,Guava,Cactoos,我正在将Google Guava库的一些用法重构为库,我很难找到函数类和Iterables.transform方法的等效实现,使用Cactoos库作为替换 示例(来自): 新连接文本( " ", 易变( repo.languages(), 新函数(){ @凌驾 公共字符串应用(最终语言lang){ 返回String.format(“#%s”,lang.name()); } } ) ).asString() 在Cactoos中,这两者的正确等效实现是什么?对于映射的iterable,存在类。就功能
在Cactoos中,这两者的正确等效实现是什么?对于映射的iterable,存在类。就功能而言,软件包中有很多这样的软件包应该可以:
String txt = new JoinedText(
" ",
new Mapped<>(
repo.languages(),
lang -> String.format("#%s", lang.name())
)
).asString();
String txt=new JoinedText(
" ",
新映射(
repo.languages(),
lang->String.format(“#%s”,lang.name())
)
).asString();
你为什么不直接使用repo.languages().stream().map(Language::name).collect(collector.joining(“”)呢?我可以使用那种方法。语言是语言的一种可移植性,需要从可移植性转换为流,我正试图避免()@filfreire如果您使用的是Java 8,为什么您这么不愿意使用流?在您链接的so线程中,有一种(丑陋但有效)方法可以将Iterable
转换为Stream
@Xaerxess,这种不情愿来自于“丑陋但有效”使用Stream作为初始方法是没有问题的,但是默认情况下languages变量是一个Iterable,我正试图找到一个不需要转换为Stream的变通解决方案。
String txt = new JoinedText(
" ",
new Mapped<>(
repo.languages(),
lang -> String.format("#%s", lang.name())
)
).asString();