如何从一个泛型列表转换为java 8中的对象列表?

Naz*_*ila 3 java generics java-8

我有这个泛型列表List<? super Domain>,包含Domain:Material和BoM的实现,现在我想分别得到每个实体.

domainList.stream().filter(a -> a.getClass().equals(BoM.class))
            .collect(Collectors.toList());
Run Code Online (Sandbox Code Playgroud)

用这行我List<? super Domain>只有包含BoM对象.我的问题是如何将此列表转换为List<BoM>

Edw*_*rzo 7

好吧,我会这样做:

List<BoM> boms = domainList.stream()
            .filter(BoM.class::isInstance)
            .map(BoM.class::cast)
            .collect(Collectors.toList());
Run Code Online (Sandbox Code Playgroud)