2017-11-29 10 views
4

정수의리스트를 매개 변수로 취하는 메소드가있다. 나는 현재 긴 목록을 가지고 내가 쓴 있도록 정수의리스트로 변환하려면 :long의리스트를 int의리스트로 변환한다. java 8

List<Integer> student = 
    studentLong.stream() 
    .map(Integer::valueOf) 
    .collect(Collectors.toList()); 

을하지만 오류 접수 :

method "valueOf" can not be resolved. 

이 목록을 변환 실제로 가능을 정수 목록에 오랫동안?

+0

'.boxed studentLong.stream() mapToInt (롱 ::있는 intValue())를 수집 (Collectors.toList ())' – alfasin

+0

map 함수가 항상 스트림에서 긴 객체를 가져온다는 것을 기억하십시오. 위의 @alfasin에 의해 설명 된대로 Long의 intValue를 호출하십시오. – BharaniK

+0

이제 작동합니다. 답변을 받아 들일 수 있도록 아래에 솔루션을 작성 하시겠습니까? – user3369592

답변

2

당신은 int 값을 추출하기 위해 Long::intValuemapToInt를 사용한다 : 인수로 Long을 받아 Integer::valueOf의 더 서명이 없기 때문에

List<Integer> student = studentLong.stream() 
      .mapToInt(Long::intValue) 
      .boxed() 
      .collec‌t(Collectors.toList(‌​)) 

당신이 method "valueOf" can not be resolved.을 얻고있는 이유입니다.

편집
아래 당 홀가의 의견, 우리는 또한 수행 할 수 있습니다..

List<Integer> student = studentLong.stream() 
      .map(Long::intValue) 
      .collec‌t(Collectors.toList(‌​)) 
+4

'.mapToInt (Long :: intValue) .boxed()'대신'.map (Long :: intValue)'를 사용하면됩니다. – Holger

+0

감사합니다. @Holger 답변에 추가하겠습니다! – alfasin