1

scala コードでJSON lib net.sf.json( http://json-lib.sourceforge.net/apidocs/net/sf/json/package-summary.html ) を使用しています。また、単体テストには specs BDD フレームワーク ( http://code.google.com/p/specs/ ) を使用しています。doBefore ブロックには、次のコードがあります。

doBefore {
  iter = serversJSON.iterator()
}

serversJSON は JSONArray オブジェクトです。doBefore ブロックの外側で、次のように使用される変数を宣言しました

var serversJSON:JSONArray = null
var iter:Iterator[JSONArray] = null

しかし、コンパイル時に次のエラーが発生します。

エラー: タイプが一致しません。見つかった: java.util.Iterator[?0] ここでタイプ ?0 が必要: java.util.Iterator[net.sf.json.JSONArray] iter = serversJSON.iterator()

doBefore の外で iter オブジェクトを宣言した方法が間違っていると思います。これを修正する方法は?

助けてくださいありがとう。

4

1 に答える 1

4

hereに示されているように、JSON ライブラリのiteratorメソッドは、Iteratorではなくraw を返しますIterator[JSONArray]。次のように宣言します。

var serversJSON:JSONArray = null
var iter:Iterator[_] = null
于 2011-02-23T15:34:42.670 に答える