如何更改Scala中CustomObject列表中的属性?

时间:2016-05-26 13:22:06

标签: scala functional-programming

我正在关注Case类

case class BIC( id: Option[Int], name: String, description: Option[String],
                                    bId: Option[Int], amount: BigDecimal,
                                    createdBy: Option[Int], createdAt: Option[DateTime] )

我的REST-API网址如下所示

POST    /api/v3/user/2/bid/23/create

现在userId = 2和bId = 23来自URL路径参数 我也有来自POST Request JSON的BIC列表,它不包含userId和bId

我直接将传入的JSON注入List [BIC],但此列表中的所有对象都没有createdBy(userId)和bId设置。

如果我想在List [BIC]的每个BIC对象中设置这两个参数,我应该遵循哪种方法?

            val lsttemp:List[BIC] = bicList
            val lst:List[BIC]
            lsttemp.foreach(x=>{
              x.bId=inId
              x.createdBy = userId
              lst.add(x)
            })

我正在尝试上面的代码,但它不起作用。

1 个答案:

答案 0 :(得分:3)

Case classes提供copy方法,帮助您实现目标:

val lst = bicList.map( _.copy(bId=inId, createdBy = userId))