2017-12-03 12 views
1

객체 목록의 속성 목록을 새 목록으로 가져 오는 방법을 알고 있습니다. 그러나 유형을 int에서 long으로 변환하고 싶습니다. 예를 들어 get userId (int 유형) 메소드가있는 사용자 클래스가 있고 myUserList은 사용자 객체 목록입니다.객체 목록에서 변환 된 유형의 속성 목록 가져 오기 java 8

List<Integer> userIdList = myUserList.stream() 
    .map(User::getUserId) 
    .collect(Collectors.toList()); 

그래서 int 유형의 사용자 ID가 목록을 얻을 수 있습니다. intlong으로 변환하고 싶습니다. 이 코드를 시도 :

myUserList.stream() 
    .map(Long::intValue(User::getUserId)) 
    .collect(Collectors.toList()); 

오류가 can not resolve method static... 있습니다. 누구나 해결 방법을 알려주시겠습니까?

+3

어떻게 .MAP'에 대한 (사용자 -> (긴) user.getUserId())'또는'.MAP (사용자 -> Long.valueOf (user.getUserId())' – khelwood

+0

당신에게 감사를 수행합니다. 아래 답변을 작성 하시겠습니까? – user3369592

답변

4

당신은

.map(user -> (long) user.getUserId()) 

또는 (이 목록에 갈 어쨌든 박스 될 필요가 있기 때문에), 당신은 Long.valueOf을 사용할 수를 주조하여 길이를 int로 변환 할 수 있습니다.

userList.stream() 
     .map(user -> Long.valueOf(user.getUserId())) 
     .collect(Collectors.toList()); 
+0

처음에 map() 대신 mapToLong()을 사용하지 않으시겠습니까? – prsvr

+1

@FairPlay'long'을 목록에 넣을 수 없습니다. 어쨌든 – khelwood

+0

나쁘다. 그의 질문을 철저히 읽지 않았다. – prsvr