Kotlin:来自序列<t>的Iterable <t>

时间:2018-07-22 09:59:24

标签: kotlin iterator java-stream iterable method-reference

在Kotlin中,如何从Iterable<T>Sequence<T>获得Stream<T>

在Java中,我可以通过以下方法获得Iterable<T>,但是等效的Kotlin代码不起作用:

final Stream<T> s = /*get Stream*/;
final Iterable<T> i1 = s::iterator;
final Iterable<T> i2 = () -> s.iterator();

1 个答案:

答案 0 :(得分:2)

由于Kotlin具有一流的函数类型,仅提供lambda或方法引用不足以将表达式强制转换为某些Java接口。但是,有一种简洁的语法可以实现单一抽象方法的接口:

val s: Stream<T> = /* get a stream */
val i = Iterable { s.iterator() }