Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/351.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Java Stream.of()与IntStream与Arrays.Stream()生成的流上调用map(Arrays::toString)_Java_Java 8_Java Stream - Fatal编程技术网

在Java Stream.of()与IntStream与Arrays.Stream()生成的流上调用map(Arrays::toString)

在Java Stream.of()与IntStream与Arrays.Stream()生成的流上调用map(Arrays::toString),java,java-8,java-stream,Java,Java 8,Java Stream,为什么当我使用Arrays.stream()或IntStream时,无法解析方法toString: int row[] = ... Arrays.stream(row) .map(Arrays::toString) .forEach(System.out::println); 但是,另一方面,当我使用Stream.of()时,它可以得到解决: Stream.of(row)将返回一个流,其单个元素是行数组Arrays包含一个静态方法toString,该方法接受int[],

为什么当我使用
Arrays.stream()
IntStream
时,无法解析方法
toString

int row[] = ...
Arrays.stream(row)
      .map(Arrays::toString)
      .forEach(System.out::println);
但是,另一方面,当我使用
Stream.of()
时,它可以得到解决:

Stream.of(row)
将返回一个
,其单个元素是
数组
Arrays
包含一个静态方法
toString
,该方法接受
int[]
,因此您的第二个代码段通过编译

另一方面,
Arrays.stream(row)
(以及
IntStream.of(row)
)返回一个
IntStream
,其元素为
int
Arrays
类中没有接受
int
参数的
toString
方法

您可以使用
Integer
static
toString
方法:

Arrays.stream(row)
      .mapToObj(Integer::toString)
      .forEach(System.out::println);

请注意,在将基元
int
映射到引用类型时,应该调用
mapToObj
,而不是
map

@Ervan,在
IntSteam
上调用
boxed
就足以将基元转换为包装器。我们并不需要这种转换来打印单个数组元素<代码>数组.stream(row).forEach(System.out::println)也会起作用。@AntonBalaniuc这是真的。
Arrays.stream(row)
      .mapToObj(Integer::toString)
      .forEach(System.out::println);