从对象列表java 8获取转换类型的属性列表

时间:2017-12-03 23:33:44

标签: java java-8 java-stream

我知道如何从对象列表中获取属性列表到新列表中。 但是如果我还想将类型从int转换为long怎么样呢。例如,如果我的用户类的方法名为get userId(int类型),则myUserList是用户对象列表。

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

所以我可以获得一个带有int类型的userId列表。如果我想将int转换为long怎么样?我试过这段代码:

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

我遇到了错误can not resolve method static...。 愿有人告诉我如何解决它吗?

1 个答案:

答案 0 :(得分:4)

您可以通过强制转换

将int转换为long
.map(user -> (long) user.getUserId())

或(因为无论如何都需要装箱才能进入列表),您可以使用Long.valueOf

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