在Kotlin上,jackson ObjectMapper.readValue()导致java.lang.IllegalStateException:readValue(content,jacksonTypeRef <t>())不能为null

时间:2018-10-12 15:54:56

标签: android kotlin jackson

在crashlytics上,我在第四行收到一个java.lang.IllegalStateException: readValue(content, jacksonTypeRef<T>()) must not be null异常。我无法复制它。我认为mapper.readValue(string)在不应该返回null的地方返回null。我处理了字符串为null的情况,所以除了字符串为null之外,什么可能导致mapper.readValue(string)返回null,所以我最终遇到此异常,并且有什么可能的方法来重现此错误?

var token: token? = null
    get() {
       val string = sharedPreferences.getString(TOKEN_KEY, null)
       field = if (string == null) null else mapper.readValue(string)
       return field     
    }
    set(value) {
        field = value
        val json = mapper.writeValueAsString(value)
        sharedPreferences.edit().putString(TOKEN_KEY, json).apply()
    }

1 个答案:

答案 0 :(得分:0)

事实证明,在这种情况下,sharedPreferences.getString(TOKEN_KEY, null)返回“ null”字符串,而mapper.readValue(string)返回null