似乎单位是我今天烦恼的主题。我正在移植一个使用 Gson 的 JSON 反序列化器,当涉及到这个 for 循环时:
def deserialize(json:JsonElement,
typeOfT:Type,
context:JsonDeserializationContext) = {
var eventData = new EventData(null, null)
var jsonObject = json.getAsJsonObject
for(entry <- jsonObject.entrySet()) {
var key = entry.getKey()
var element = entry.getValue()
element
if("previous_attributes".equals(key)) {
var previousAttributes = new scala.collection.mutable.HashMap[String, Object]()
populateMapFromJSONObject(previousAttributes, element.getAsJsonObject())
eventData.setPreviousAttributes(previousAttributes)
eventData
} else if ("object".equals(key)) {
val `type` = element.getAsJsonObject().get("object").getAsString()
var cl = objectMap.get(`type`).asInstanceOf[StripeObject]
var `object` = abstractObject.retrieve(cl, key)
eventData.setObject(`object`)
eventData
}
}
}
编译器吐出错误type mismatch; found : Unit required: com.stripe.EventData
并在此处指向此行:for(entry <- jsonObject.entrySet())
问题
- 确认确实
entrySet()
是以单位出现的 Gson 方法? - 如果不是,代码的哪一部分造成了问题?我已经为
eventData
类方法设置了返回类型/值 - Gson Unit 问题是否有解决方法?
谢谢!