非法状态异常("JsonReader is closed")

IllegalStateException("JsonReader is closed")

此代码不会抛出:

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
}

但是如果我在 return 之前添加 reader.close,或者使用 reader.use { },它会被捕获到这里:

private fun <T> networkTransform(): SingleTransformer<Response<T>, Response<T>> {
        return SingleTransformer {
            it.onErrorResumeNext { throwable -> ...}
            ...

所以我的问题是,我们需要处理 close() 吗?

您不应该在 JsonAdapter 本身中关闭 reader,只有调用代码(即创建 reader 并调用 fromJson() 的人)需要处理它。