今日の悩みのテーマはユニットのようです。私は 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())
質問
- ユニットとして登場するGsonメソッドであることを確認
entrySet()
? - そうでない場合、コードのどの部分が問題を引き起こしていますか?
eventData
クラスメソッドの戻り値の型/値を設定しました - Gson ユニットの問題の回避策はありますか?
ありがとう!