对象中有数据集。我可以改变价值,但像这样我总是得到一张旧地图。
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 如何获得最新值?
我做错了什么?
答案 0 :(得分:0)
var partnerURLs = getPartnerURLs()
这个变量是你的问题。如果它在封闭类或对象中全局声明,它将只初始化一次!
另外,请避免使用可变状态!尊重Scala和功能编程!