Во время игры с 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()
, которое также просто работает для массивов классов-оболочек?