从API级别33开始,Bundle类的getSerializable(String)
方法已被弃用。文档建议改用getSerializable(String,Class)
方法。但是这个函数只在API级别33及以上可用。
我的当前代码:
val model = args.getSerializable("key") as? Model
现在应该是这样吗?
val model = args.customGetSerializable<Model>("key")
@Suppress("DEPRECATION")
inline fun <reified T : Serializable> Bundle.customGetSerializable(key: String): T? {
return if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
getSerializable(key, T::class.java)
} else {
getSerializable(key) as? T
}
}
Parcelable
? - CoolMindParcelable
可以替代Serializable
,即使是对于Enum
也是如此。 - CoolMindSerializable
和Parcelable
之间有意义区别的对象。 - Agent_L