此代码不会抛出:
override fun fromJson(reader: JsonReader): List<MyObj> {
val result = ArrayList<MyObj>()
reader.beginObject()
while (reader.hasNext()) {
result.add(MyObj(reader.nextName(), reader.nextString()))
}
reader.endObject()
return result
}
但是,如果我在返回前添加reader.close
,或使用reader.use { }
,它将在这里被捕获:
private fun <T> networkTransform(): SingleTransformer<Response<T>, Response<T>> {
return SingleTransformer {
it.onErrorResumeNext { throwable -> ...}
...
所以我的问题是,我们需要处理close()吗?
答案 0 :(得分:2)
您不应该在JsonAdapter本身中关闭阅读器,只有调用代码(即创建阅读器并从fromJson()调用的人)才需要处理它。