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 .

  • Actualizando la Vista de Reciclador y Creando Parcelables para la rotation de la pantalla (¿Cuál es el mejor curso de acción aquí?)
  • Android Parcelable en Kotlin: CREATOR no encontrado en la class de datos Parcelable
  • ¿Cómo usar @Parcelize en Kotlin 1.1.60?
  • Cómo usar null con kotlin @Parcelize