将延展性传递给模型类时,类型不匹配

时间:2020-01-17 16:16:28

标签: java kotlin

问题是当我创建Model类的实例并将非null变量传递给构造函数时,编译器显示错误Type-mismatch。 我通过将模型类变量设置为可空值来修复了类型不匹配错误

但是我不明白编译器显示的错误。

模型类

class SharedPreferenceEntry (val name:String, val dateOfBirth:Calendar, val email:String)

Helper类SharedPreferencesHelper,在其中创建了Model类的实例,并从函数中返回该实例

fun getPersonalInfo(): SharedPreferenceEntry { // Get data from the SharedPreferences.
        val name = mSharedPreferences.getString(KEY_NAME, "")
        val dobMillis =
            mSharedPreferences.getLong(KEY_DOB, Calendar.getInstance().getTimeInMillis())
        val dateOfBirth: Calendar = Calendar.getInstance()
        dateOfBirth.setTimeInMillis(dobMillis)
        val email = mSharedPreferences.getString(KEY_EMAIL, "")
        // Create and fill a SharedPreferenceEntry model object.
        return SharedPreferenceEntry(name, dateOfBirth, email)
    }

1 个答案:

答案 0 :(得分:1)

正如@sonnet所评论的,如果密钥映射到mSharedPreferences.getString(...),则使用null将返回null。为确保mSharedPreferences.getString(...)的值不为空,请将其更改为mSharedPreferences.getString(...) ?: ""