2014-11-15 121 views
0

的ArrayList我宣布一个这样的数组列表:的Xtend:过滤字符串

VAL aName =新的ArrayList

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

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

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

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

回路上面根本不打印的名称。 因为我的功能isNameUsed()如我所料没有收到字符串,而是接收地址为String

[email protected] 

不过,我似乎没有有问题,当我不使用过滤器()。

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

任何人都可以建议如何使用过滤器()与字符串?

回答

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) ] 
+0

这是一个错字。它应该是print(m),因为它是一个String的ArrayList。在isNameUsed()内部,我打印了我收到的内容(“toString”的内容)。但我没有得到一个名字。我得到这个:[email protected] –

+0

请分享整个方法体。我试图重现,但代码为我工作。你使用哪种版本的Xtend? –