Android Parcelable en Kotlin

Tengo dicho Java plotble:

@SuppressWarnings("rawtypes") public static final Parcelable.Creator CREATOR = new Parcelable.Creator() { public KwerendaGraficzna createFromParcel(Parcel in) { return new KwerendaGraficzna(in); } public KwerendaGraficzna[] newArray(int size) { return new KwerendaGraficzna[size]; } }; 

Ahora tratando de implementarlo en Kotlin:

 companion object { @SuppressWarnings("rawtypes") val CREATOR: Parcelable.Creator<KwerendaGraficzna!> = object : Parcelable.Creator<KwerendaGraficzna!> { override fun createFromParcel(`in`: Parcel): KwerendaGraficzna { return KwerendaGraficzna(`in`) } override fun newArray(size: Int): Array<KwerendaGraficzna!> { return arrayOfNulls<KwerendaGraficzna!>(size) } } } 

arrayOfNulls no comstackrá requiere KwerendaGraficzna mientras dice que recibió KwerendaGraficzna?

Entonces, ¿cómo lo hago?

Sospecho que estás usando una versión obsoleta del comstackdor de Kotlin (¡ya que usas ! ). Aquí hay una versión que comstack correctamente con la última versión:

 companion object { @JvmField val CREATOR = object : Parcelable.Creator<KwerendaGraficzna> { override fun createFromParcel(`in`: Parcel): KwerendaGraficzna { return KwerendaGraficzna(`in`) } override fun newArray(size: Int): Array<KwerendaGraficzna?> { return arrayOfNulls(size) } } } 

Como Parcelable.Creator requiere un campo público estático, debemos marcar la propiedad @JvmField con @JvmField y JvmStatic .

  • Error de compilation de Kotlin cuando se usa Parcelable
  • Cómo usar null con kotlin @Parcelize
  • Parcelable con object personalizado plotble
  • Clase plotble de Kotlin lanzando ClassNotFoundException