在 Java 8 中使用 map 函数无法进行类型转换

代码模式

我正在比较两个列表。

List allUserGroups = UserBC.getAllGroupsForUser(userId, deptID);
List<String> confUserGroups= Arrays.asList(configuredSet);

列表一返回对象,我需要将其类型转换为 GroupData 实体。GroupData 有多个字段并且想要比较字段“id”之一。所以我使用 map 函数进行类型转换,如下所示,

isValuePresent = allUserGroups.stream().map(p -> (GroupData) p).anyMatch(p -> confUserGroups.contains(p.getId()));

问题是,因为p.getId()它再次要求类型转换。编译器要求再次添加强制转换。如果我错过了什么,任何人都可以提出建议。

EDIT1: id 是 long 类型,否则我可以使用((GroupData)p).getId()

EDIT2:修改了 Joop 回答的代码,但得到同样的错误

在此处输入图片说明

安东·巴拉纽克

你可以尝试使用这样的东西:

allUserGroups.stream()
    .map(GroupData.class::cast)
    .map(GroupData::getID)
    .anyMatch(confUserGroups.contains)

例如与String类:

List<Object> list = Arrays.asList("a","ab","abc");
list.stream()
        .map(String.class::cast) // cast to String
        .map(String::getBytes) // call getBytes on every element
        .forEach(System.out::println); 

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类常见问题

使用Java 8 Streams的Hash Map对象列表迭代

来自分类常见问题

使用Java 8如何根据过滤条件按列表和分组进行过滤,并以其计数转换为Map

来自分类Dev

在Java中使用for循环对8x8块进行分组

来自分类Dev

在Java 8中使用Lambda对ArrayList进行排序

来自分类Dev

在Java 8中使用Lambda进行异常处理

来自分类Dev

Java 8 Map KeySet Stream无法按需要在Collector中使用

来自分类Dev

使用Java 8流对集合进行排序将其转换为Map

来自分类Dev

在Java-8中使用函数的ArrayList

来自分类Dev

java 8可选map()使用函数引用但不使用完整的lambda语法抛出NPE

来自分类Dev

Java 8使用以下命令将Map <Integer,List <String >>转换为Map <String,List <Integer >>

来自分类Dev

在使用流API的Java 8中,如何从Map返回实例并需要进行多次计算

来自分类Dev

如何使用Streams和Lambda Java8将List <Object []>转换为Map <String,BigInteger>

来自分类Dev

Lambda内的类类型collectors-map-java8

来自分类Dev

在Java 8中使用Collectors.toMap使用LIst进行映射

来自分类Dev

如何使用Java 8 Lambda和流对Map <YearMonth,List <LocalDate >>进行排序

来自分类Dev

在Java8地图中使用函数

来自分类Dev

Java 8流图自定义函数并将其转换为Map

来自分类Dev

无法在Flutter中使用.map函数

来自分类Dev

在Java 8中使用Lambda进行异常处理

来自分类Dev

如何使用Streams和Lambda Java8将List <Object []>转换为Map <String,BigInteger>

来自分类Dev

在stream()。map()中定义的Java 8函数

来自分类Dev

使用新的Java 8流将Map <List>转换为List <NewType>

来自分类Dev

使用Java 8流将Collection转换为Map <String,Collection <String >>

来自分类Dev

在Java8地图中使用函数

来自分类Dev

在Java 8中使用流在列表上进行迭代

来自分类Dev

Java 8:如何使用 ArrayList 对两个嵌套的 Map 进行排序和收集?

来自分类Dev

使用 Java 8 将 Map<Object,Map<Object,List<Object>>> 转换为 Set<Object>

来自分类Dev

在 MAP 中使用 Pojo 作为 Key 无法找到 Key Java 8

来自分类Dev

如何使用 java8 将 List<Employee> 转换为 Map<Employee, List<String>>?

Related 相关文章

  1. 1

    使用Java 8 Streams的Hash Map对象列表迭代

  2. 2

    使用Java 8如何根据过滤条件按列表和分组进行过滤,并以其计数转换为Map

  3. 3

    在Java中使用for循环对8x8块进行分组

  4. 4

    在Java 8中使用Lambda对ArrayList进行排序

  5. 5

    在Java 8中使用Lambda进行异常处理

  6. 6

    Java 8 Map KeySet Stream无法按需要在Collector中使用

  7. 7

    使用Java 8流对集合进行排序将其转换为Map

  8. 8

    在Java-8中使用函数的ArrayList

  9. 9

    java 8可选map()使用函数引用但不使用完整的lambda语法抛出NPE

  10. 10

    Java 8使用以下命令将Map <Integer,List <String >>转换为Map <String,List <Integer >>

  11. 11

    在使用流API的Java 8中,如何从Map返回实例并需要进行多次计算

  12. 12

    如何使用Streams和Lambda Java8将List <Object []>转换为Map <String,BigInteger>

  13. 13

    Lambda内的类类型collectors-map-java8

  14. 14

    在Java 8中使用Collectors.toMap使用LIst进行映射

  15. 15

    如何使用Java 8 Lambda和流对Map <YearMonth,List <LocalDate >>进行排序

  16. 16

    在Java8地图中使用函数

  17. 17

    Java 8流图自定义函数并将其转换为Map

  18. 18

    无法在Flutter中使用.map函数

  19. 19

    在Java 8中使用Lambda进行异常处理

  20. 20

    如何使用Streams和Lambda Java8将List <Object []>转换为Map <String,BigInteger>

  21. 21

    在stream()。map()中定义的Java 8函数

  22. 22

    使用新的Java 8流将Map <List>转换为List <NewType>

  23. 23

    使用Java 8流将Collection转换为Map <String,Collection <String >>

  24. 24

    在Java8地图中使用函数

  25. 25

    在Java 8中使用流在列表上进行迭代

  26. 26

    Java 8:如何使用 ArrayList 对两个嵌套的 Map 进行排序和收集?

  27. 27

    使用 Java 8 将 Map<Object,Map<Object,List<Object>>> 转换为 Set<Object>

  28. 28

    在 MAP 中使用 Pojo 作为 Key 无法找到 Key Java 8

  29. 29

    如何使用 java8 将 List<Employee> 转换为 Map<Employee, List<String>>?

热门标签

归档