用于最终字段初始化的特定化流(IntStream / LongStream)的StackOverflowError

时间:2017-03-21 11:04:53

标签: java java-8 initialization java-stream

使用stream初始化静态字段时遇到意外行为:

public class TestCompilation {
    static final String message = "concatenation argument " + IntStream.range(0,42)
            .mapToObj(i -> i+",")
            .reduce((a, b)->a+b).get();      // StackOverflowError

    public static void main(String[] args) {
        System.out.println(message);
    }
}

上面的代码会导致Error:java: java.lang.StackOverflowError

有人可以解释这种结果的原因吗?

javac 1.8.0_111用于编译java源代码

0 个答案:

没有答案