整数流

use*_*343 7 java-8

我有代码:

int[] values = { 1, 4, 9, 16 };
Stream<Integer> ints = Stream.of(values);
Run Code Online (Sandbox Code Playgroud)

这给了我编译错误.但:

int[] values = { 1, 4, 9, 16 };
Stream<Integer> ints = Stream.of(new Integer[] {1, 4, 9, 16});
Run Code Online (Sandbox Code Playgroud)

不这样做.为什么?

Jea*_*ard 12

在第一示例中,要传递的基元阵列ints到Stream#of可采取任一对象,或对象的阵列.基元不是对象.

在第二个例子中,它编译因为你传入一个数组Integer.

您可以使用IntStream#of哪个接受int数组.


Vla*_*nin 5

因为int[]Integer[]是不同的类型。第一个是基元数组,第二个是类型为对象的数组Integer

您可以使用IntStream.of(int[])Stream.of(Integer[])