首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Lambdaj类转换

Lambdaj类转换
EN

Stack Overflow用户
提问于 2012-03-23 15:19:18
回答 1查看 639关注 0票数 2

我有一些这样的代码:

代码语言:javascript
复制
List<ClassB> back = new ArrayList<ClassB>();
for( ClassA classA : getClassAs() )
{
    if( classA instanceof ClassB )
    {
        back.add((ClassB) classA);
    }
}

ClassB扩展了ClassA

在lambdaj中有什么聪明的方法可以做到这一点吗?我知道有IsInstanceOf Matcher,但我必须靠“手”来完成演员阵容。

提前感谢

mojoo

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-05-12 01:48:46

这不是很有效,但可以提供一些方向:

你的原始列表在你的帖子中被命名为"back“:

1.按类型将“返回”元素过滤到新列表中(列表仅包含类型B的对象)

代码语言:javascript
复制
List bList = Lambda.filter(org.hamcrest.Matchers.instanceOf(B.class),back);

2.使用转换器对象将过滤对象列表bList转换为列表

代码语言:javascript
复制
List<B> list = Lambda.convert(bList,new Converter<Object, B>() {
    public B convert(Object from) {
        return (B) from;
        }
    });
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9835409

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档