从函数变量来获取每个更改的值

时间:2017-12-21 06:50:18

标签: scala function dataset

对象中有数据集。我可以改变价值,但像这样我总是得到一张旧地图。

   var partnerURLs=getPartnerURLs()

  def getPartnerURLs(): mutable.Map[String, List[String]] ={
    val sql = "select * from table where status_flag=1 and del_flag=0"
    val resultSet = DBUtils.doMapResult(sql)
    var result = new scala.collection.mutable.HashMap[String, List[String]]()
    resultSet.foreach(rows => {
      val row = rows.asInstanceOf[util.HashMap[String, Any]]
      result += (row.get("uname").toString -> row.get("urls").toString.split(",").toList)
    })
    result
  }

如果我更新数据库, partnerURLS 无法更改,则它始终具有旧值。 这个方法还可以,可以获得最新值,我希望这个变量 partnerURLs 如何获得最新值?

我做错了什么?

1 个答案:

答案 0 :(得分:0)

var partnerURLs = getPartnerURLs()

这个变量是你的问题。如果它在封闭类或对象中全局声明,它将只初始化一次!

另外,请避免使用可变状态!尊重Scala和功能编程!