问题是,当我创建Model类的实例并将不可为空的变量传递给构造函数时,编译器显示错误Type-mismatch。通过将模型类变量设置为可空,我修复了类型不匹配错误
但是我不能理解编译器显示的错误。
模型类
class SharedPreferenceEntry (val name:String, val dateOfBirth:Calendar, val email:String)Helper类SharedPreferencesHelper,我在其中创建了一个Model类的实例,并从function返回该实例
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)
}发布于 2020-01-18 09:34:01
正如@sonnet所评论的那样,如果键被映射到null,则使用mSharedPreferences.getString(...)将返回null。为确保mSharedPreferences.getString(...)的值不为空,请将其更改为mSharedPreferences.getString(...) ?: ""。
https://stackoverflow.com/questions/59791101
复制相似问题