当前位置: 首页 > 知识库问答 >
问题:

Java 8流API:对实例进行筛选,并强制转换[重复]

弓明亮
2023-03-14

我有一个对象列表:

List<SomeType> myList;

我想在此列表中获得可用的子类型列表:

List<SomeChildType> myChildList = myList.stream().filter(e -> e instanceof SomeChildType).collect(??????)

我不知道如何收集以获得正确的列表类型。

共有1个答案

黄沈浪
2023-03-14

您需要投射对象:

List<SomeChildType> myChildList = myList.stream()
                                        .filter(SomeChildType.class::isInstance)
                                        .map(SomeChildType.class::cast)
                                        .collect(toList())
 类似资料:
  • 我需要筛选我的对象列表: 以便将具有相同和的所有对象合并到具有以下属性的单个对象中: 作为所有值的和 作为所有值的字符串级联 所以结果是: Java 8中的溪流有可能做到吗? 我尝试了几种方法(例如,还使用),但我没有找到解决方案! 谢谢 编辑: 下面是我尝试的: 但由于某种原因,在计算过程中,我在上得到了,无论如何,我非常肯定这不是一个有效的解决方案。

  • 奇怪的情况-下面是代码: 构建项目时(在项目属性中使用编译器选项Xlint:unchecked),我得到一个警告: 警告:[未选中]未选中的强制转换 ArrayList list=(ArrayList)obj[1]; 必需:ArrayList 找到:对象 但用同样的方法来浇铸字符串是可以的。这里有什么问题?

  • 简单的解决方案是通过像这样强制转换匹配器来删除泛型: 可能,但会生成编译器警告并感觉错误。 一个冗长的替代方案是:

  • 本文向大家介绍Javascript进制转换实例分析,包括了Javascript进制转换实例分析的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Javascript进制转换的方法。分享给大家供大家参考。具体如下: 希望本文所述对大家的javascript程序设计有所帮助。

  • 我以json字符串的形式生成输入数据。 对于主题-myinput 我的班级是这样的: 我得到下面类铸造异常: 线程“countries-streaming-analysis-app-f7f95119-4401-4a6e-8060-5A138FFADB2-StreamThread-1”组织中的异常。阿帕奇。Kafka。溪流。错误。异常:流程中捕获到异常。taskId=0_0,processor=KS

  • 我有一些我无法控制的代码。此代码接受一个对象参数,并尝试将其转换为编译时已知的类型,如下所示: 在C#中是否可以设计一个自定义类(不是从KnownType派生的),该类可以作为参数传递给上述代码,并通过上述代码转换为,前提是可以使用其成员方法将自身转换为: 我曾尝试实现这样的自定义转换运算符: 但是它不起作用(它没有被使用)。假设转换运算符仅在编译时已知源类型、目标类型和转换运算符时才起作用,这是