问题是当我创建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)
}
答案 0 :(得分:1)
正如@sonnet所评论的,如果密钥映射到mSharedPreferences.getString(...)
,则使用null
将返回null
。为确保mSharedPreferences.getString(...)
的值不为空,请将其更改为mSharedPreferences.getString(...) ?: ""
。