char[]을 Integer List로 만들 필요가 있어 아래처럼 스트림을 생성하고자 했는데 에러가 발생했다.
String s = "abc";
char[] chars = s.toCharArray();
Arrays.stream(c);
알고보니 char[]로는 스트림을 곧바로 생성할 수 없었던 것이다. 자바 스트림은 IntStream, LongStream과 같이 스트림 클래스를 지원하는데, CharStream 클래스는 존재하지 않는다. 또한 char는 원시 타입이라 바로 스트림을 생성할 수 없다.
따라서 스트림을 생성하려면 Wrapper Class 에 해당하는 Character를 써주거나, String.chars()를 이용해야한다.
다음과 같이 수정하니, 원활하게 동작이 되었다.
List<Integer> arr = new String(chars)
.chars()
.mapToObj(c -> Character.getNumericValue((char) c))
.collect(Collectors.toList());