私のAndroidアプリで、以下に説明するPlace
オブジェクトを含むバンドルをインテントに追加したいと思います。シリアライズは遅く、お勧めできなかったため、Parcelableを選択しました。
または、Kotlin 1.3.31を使用していますが、一部のデータクラスの分割に問題があります。例:
import Android.os.Parcelable
import kotlinx.Android.parcel.Parcelize
@Parcelize
data class Place(val street: String, val postal: String, val city: String) : Parcelable
およびAndroid Studioが不満を言う:
クラス 'Place'は抽象ではなく、抽象メンバーを実装していませんpublic abstract fun writeToParcel(p0:Parcel !, p1:Int):Android.os.Parcelableで定義されているユニット
いくつかのチュートリアルによると
それでおしまい!パーセルメソッドを記述する必要はもうありません。
https://Android.jlelse.eu/yet-another-awesome-kotlin-feature-parcelize-5439718ba22
そして私は使いたくない
androidExtensions {
experimental = true
}
プロダクションのもの。
ここにはどのような選択肢がありますか?
したくない場合は、常にIDEメソッドスキーマを作成するためのIDE $ ===)の順序でParcelable(cmd + enter/alt + enter on class name-> `Add Parcelable Implementation"を実装できます。 /実験的な拡張機能は使用できません。
しかし、私はプロド環境で@Parcelizeを(多くのテストを行った後)1年以上使用しており、問題はありませんでした(ただし、意見はありますが、そうする必要はありません)。