我有一个像这样声明的数组列表:
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()吗?
答案 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) ]