我在我的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]其中type?0 需要: java.util.Iterator的[net.sf.json.JSONArray] iter = serversJSON.iterator()
我想我在doBefore之外声明iter对象的方式是不正确的。如何解决这个问题?
请帮助 谢谢。
答案 0 :(得分:4)
如所示here,JSON库的iterator
方法返回原始Iterator
,而不是Iterator[JSONArray]
。您需要按如下方式声明:
var serversJSON:JSONArray = null
var iter:Iterator[_] = null