2014-11-15 157 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? –