2017-12-21 24 views
-1

オブジェクトにはデータセットがあります。私は値を変更することができますが、このように私はいつも古い地図を取得します。各変更された値を取得する関数からの変数

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

データベースの更新とはどういう意味ですか?メソッドgetPartnerURLsがデータベースから最新の更新を取得していないと言っていますか? – sparkr

+0

このメソッドは大丈夫です、最新の値を取得することができます、私はこの変数partnerURLsはどのように最新の値を取得すると思いますか? – lemanli

+0

クラスとオブジェクト、およびそれらの動作を理解していますか?はいの場合、グローバル変数partnerURLに最新の値が反映されない理由を知っておく必要があります。最初に基本を理解してください! – sparkr

答えて

0
var partnerURLs = getPartnerURLs() 

この変数は問題です。囲むクラスまたはオブジェクトでグローバルに宣言されている場合は、一度だけ初期化されます。

また、可変状態の使用を避けてください! ScalaとFunctionalプログラミングを尊重してください!

+0

それは私の問題です、私はスカラが変数に関数を渡すと思います。参照呼び出し、初期化された値ではありません。どのように関数を変数に定義することができますか? – lemanli

関連する問題