1

我在我的 scala 代码中使用 JSON lib net.sf.json( http://json-lib.sourceforge.net/apidocs/net/sf/json/package-summary.html )。另外,我正在使用规范 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

如此处所示,JSON 库的iterator方法返回一个原始的Iterator,而不是一个Iterator[JSONArray]. 您需要按如下方式声明它:

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