Android API 33 이후 getSerializable()이 deprecated 되었습니다.
기존에는 아래와 같이 사용하였습니다.
getSerializable(key) as? T
API 33 이후로는 아래처럼 사용해야 합니다.
getSerializable(key, T::class.java)
따라서, 앞으로는 이런 방식으로 사용합니다.
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
getSerializable(key, T::class.java)
} else {
getSerializable(key) as? T
}
매번 이렇게 사용하기는 귀찮으니 확장함수로 정의하여 사용합니다.
@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
}
}