2012-08-27 65 views
1

如果我有一個有趣的字段的對象列表,我想複製到一個新的(稍微不同的對象)對象的新列表,我該如何去做呢?什麼是在Scala中複製和改變列表項的好方法?

說你有兩個不同的類別:

class Person(name: String, surname: String) 

class Technician(firstName: String, lastName: String, title: String) 

現在,假設你有技術人員的名單,什麼是創建技師該名單的人選名單的好方法?人員沒有標題字段,因此可以忽略,並且技術人員的firstName和lastName字段需要映射到新列表中每個新Person的名稱和姓氏。

+0

一般來說,如果可以的話,你應該讓技術員擴展人員。因此,如果你打電話給asInstanceOf [Person],你可以免費得到它。如果你不能,我會建議與drexin相同的解決方案。 –

+0

謝謝@ T.Grottker。我完全同意這將是理想的,但在這種情況下,我不能那樣做。再次感謝。 – Jack

回答

8

可以使用List類的map操作:

xs.map { t => new Person(t.firstName, t.lastName) } 

正如它的名字說,這一切的對象映射在一個列表中塊的結果,將它們作爲一個新的列表。

+1

我的大腦陷入了Java模式!現在都更好了:-p – Jack

+1

@JacobusR:你甚至在你的問題中使用了魔術詞「map」:-) –

相關問題