Eugen Martynov
04/18/2024, 6:55 AMrequireNotNull
still treated as possible to return nullsemoro
04/18/2024, 6:56 AMEugen Martynov
04/18/2024, 6:58 AMprivate val popUpModel: RelevantContent.Popup
get() = requireNonNull(requireArguments().getParcelableCompat(PopupViewModel.ARG_KEY_POP_UP))
And the getParcelableCompat()
looks like
inline fun <reified T : Parcelable> Bundle.getParcelableCompat(key: String): T? {
return if (Build.VERSION.SDK_INT < Build.VERSION_CODES.TIRAMISU) {
getParcelable(key) as? T
} else {
getParcelable(key, T::class.java)
}
}
That doesn't matter both cases of it return nullEugen Martynov
04/18/2024, 6:58 AMReturn type mismatch: expected 'com.company.RelevantContent.Popup', actual 'com.company.RelevantContent.Popup?'.
Eugen Martynov
04/18/2024, 7:00 AMprivate val popUpModel: RelevantContent.Popup
get() {
val popup = requireNonNull<RelevantContent.Popup>(requireArguments().getParcelableCompat(PopupViewModel.ARG_KEY_POP_UP))
return popup
} return popup
Fixes itEugen Martynov
04/18/2024, 7:01 AMprivate val popUpModel: RelevantContent.Popup
get() = requireNonNull<RelevantContent.Popup>(requireArguments().getParcelableCompat(PopupViewModel.ARG_KEY_POP_UP))
But gives warning in IDE that explicit type is redundantEugen Martynov
04/18/2024, 7:03 AMsemoro
04/18/2024, 7:04 AMrequireNonNull
, probably it is the culpritEugen Martynov
04/18/2024, 7:05 AMpublic static <T> T requireNonNull(T obj) {
if (obj == null)
throw new NullPointerException();
return obj;
}
Eugen Martynov
04/18/2024, 7:05 AMrequireNotNull
Eugen Martynov
04/18/2024, 7:05 AMsemoro
04/18/2024, 7:07 AMEugen Martynov
04/18/2024, 7:08 AMEugen Martynov
04/18/2024, 7:09 AMsemoro
04/18/2024, 7:11 AMEugen Martynov
04/22/2024, 3:50 PMEugen Martynov
04/22/2024, 3:50 PMsemoro
04/22/2024, 5:47 PMEugen Martynov
04/22/2024, 7:07 PM