如何使用FlatMap打印无限的数字序列?

Jok*_*ker 3 java java-8 java-stream

我正在学习平面地图,并希望打印无限的序列integers.

但是,当我尝试编译程序时,它失败了System.out.println:

public class Test{
    public static void main(String[] args) {
    Stream.of("").flatMap(x -> Stream.iterate(1, i -> i + 1)).forEach(System.out.println); 
    }
}
Run Code Online (Sandbox Code Playgroud)

有人可以帮助我,让我知道如何做到这一点,如果可能请检查我的代码打印无限的integers问题序列.

Gho*_*ica 6

简单:

System.out.println
Run Code Online (Sandbox Code Playgroud)

不是一个方法参考.你需要

System.out::println
Run Code Online (Sandbox Code Playgroud)

代替.看这里阅读.重点是:flatMap()期待你可以"召唤"的东西.并且System.out.println不表示东西可以被调用.因此语法无效!