【发布时间】:2019-11-28 07:51:36
【问题描述】:
如何在嵌套列表的 Object - 中对对象进行类型转换:
C c = GenericScreenDataBean fieldObjx = this.expenseLineItemList.stream()
.flatMap(a -> a.getSectionModel().getControls().stream())
.filter(b -> b.getData() instanceof GenericScreenDataBean)
.map(GenericScreenDataBean.class::cast)
.filter(c->c.getFieldKey().equals("IncurredAmount")).findAny().orElse(null);
正如上面提到的代码,以下是描述-:
List<expenseLineItemList> 是我为其调用流 API 的主 List,然后我在 List<Controls> 上进行流式传输。
现在,Controls 类中的数据 getObject() 是我要在此处进行类型转换的 Object 类型。由于映射函数map(GenericScreenDataBean.class::cast) 将转换Controls.class,我得到了类型转换异常。
那么,我怎样才能对getControls().getObject() 进行类型转换并过滤掉所需的结果,而不是对Controls.class 进行类型转换?
【问题讨论】:
-
我假设您的意思是
getData()而不是getObject(),因为在过滤步骤中使用的是getData()。
标签: java java-8 java-stream