.mapToInt(Integer::intValue)
를 보고 왜 같은 타입으로 바꿔주는거지? 생각이 들어서 검색해보았다.
Integer 는 'int'의 래퍼클래스이므로, Integer 객체는 'null' 값을 가질 수 있으며, 객체로써 다양한 메소드를 사용할 수 있다.
int는 기본 자료형으로, null 값을 가질 수 없으며 객체로 표현되지 않는다.
Integer.valueOf(int) 를 사용하여 int 를 Integer 객체로 변환할 수 있다.
int i = 10;
Integer j = Integer.valueOf(20);
// int 값을 출력
System.out.println(i); // 출력 결과: 10
// Integer 객체의 값을 출력
System.out.println(j); // 출력 결과: 20
// Integer 객체의 int 값을 출력
System.out.println(j.intValue()); // 출력 결과: 20