在尝试使用Java8的Streams-API时,我遇到了以下问题:
要将一个原始包装类对象数组转换为Stream
,我只需要调用Stream.of(array)
。但是,要将原始数据类型的数组转换为Stream
,我必须从相应的包装器(类)流类中调用.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()
的行为相对应,它也仅适用于包装类数组?
Arrays.stream(ints).forEach(System.out::println)
。 - skiwi