2

Scala初心者は怖いです:

データベースからオブジェクトを読み取る次の宣言されたクラス変数があります。

val options = mutable.LinkedList[DivisionSelectOption]()

次に JPA を使用して、テーブルからすべての行のリストを取得します。

val divisionOptions = em.createNamedQuery("SelectOption.all", classOf[SelectOption]) getResultList
/* Wrap java List in Scala List */
val wrappedOptions = JListWrapper.apply(divisionOptions)
/* Store the wrappedOptions in the class variable */
options += wrappedOptions

ただし、最後の行にはエラーがあります。

Type Expected: String, actual JListWrapper[SelectOption]

私が間違っていることを手伝ってくれる人はいますか?optionsDB 呼び出しの結果をオブジェクトに取り込もうとしています。

ありがとう

4

1 に答える 1

1

(おそらく) 起こっているのは、 a が aでJlistWrapper[SelectOption]はないDivisionSelectOptionため、メソッド+=はそれに適用できないということです。その場合、他のものを試しており、これで最終的なエラーが発生します:

options = options + wrappedOptions

これは、 Scala が のようなものをx += 1機能させるためにできる書き直しですvar x。この+メソッドはすべてのオブジェクトに存在しますが、Stringas パラメータを取りoptions + ":"ます。これにより、Java のように記述して動作させることができます。しかし、wrappedOptionsではないのでString、文句を言います。

回りくどくて紛らわしいことは知っています.Oderskyでさえ. に関する彼の決定を後悔してい+ます. これを教訓にしましょう: にメソッドを追加する場合は、実行する前によくAny考えてください。

于 2013-01-17T15:16:48.810 に答える