【发布时间】:2014-05-25 07:17:40
【问题描述】:
在使用 Java8 的 Streams-API 时,我偶然发现了以下问题:
要将原始包装类对象数组转换为Stream,我只需调用Stream.of(array)。但是要转换原始数据类型的数组,我必须从相应的包装器(类)流类中调用.of(array)(
一个例子:
final Integer[] integers = {1, 2, 3};
final int[] ints = {1, 2, 3};
Stream.of(integers).forEach(System.out::println); //That works just fine
Stream.of(ints).forEach(System.out::println); //That doesn't
IntStream.of(ints).forEach(System.out::println); //Have to use IntStream instead
我的问题:
为什么是这样?这是否与例如相关? Arrays.asList() 的行为也仅适用于包装类数组?
【问题讨论】:
-
用IntStream方法处理IntStreams,用Stream方法处理Streams不是很正常吗?
-
你也可以使用
Arrays.stream(ints).forEach(System.out::println)。 -
@skiwi 很高兴知道。谢谢
-
与stackoverflow.com/q/14850879/2886891相关(但不直接复制)
标签: java wrapper java-8 primitive-types java-stream