Xtend:过滤字符串的ArrayList

时间:2014-11-15 08:53:24

标签: java arraylist filter xtend

我有一个像这样声明的数组列表:

val aName = new ArrayList

我通过add()在这个数组中添加名称。

当我打印它们时,我只想打印特定的名称(例如所有名称为“Charlie”并在财务部门工作)。

在我的for循环中,我有这个:

for (m: aName.filter[!CDirectoryFacade::instance.isNameUsed(toString)])
{
    print(m)
}

上面的循环根本没有打印名称。 因为我的函数isNameUsed()没有像我期望的那样接收字符串,而是接收到地址为String

org.generator.myDsl.myDslGenerator@67bd0a26

但是,当我不使用filter()时,我似乎没有问题。

for (m: aName)
{
   if (!CDirectoryFacade::instance.isNameUsed(m))
   {
     print(m)
   }        
}

有人可以建议如何在字符串中使用filter()吗?

1 个答案:

答案 0 :(得分:0)

很难分辨,因为您的代码段并未提供任何类型,并且name表达式中print的来源不明确。 但上面的代码可能应该是这样的:

for (m: aName.filter[!CDirectoryFacade::instance.isNameUsed(toString)])
{
    print(m.name) // instead of print(name)
}

我可以更简洁:

aName.filter[!CDirectoryFacade::instance.isNameUsed(toString)].forEach[ print(name) ]