Sobes.tech
Назад к вопросам
Junior — Middle
67

Какие типы интерфейсов для преобразования объектов в Android вы знаете?

Компании, где спрашивали
Core outstaff

Ответ от нейросети

sobes.tech AI

В Android для преобразования объектов часто используются следующие интерфейсы:

  • Parcelable — интерфейс для сериализации объектов с целью передачи между компонентами (например, между Activity или Service). Он более эффективен, чем Serializable, так как оптимизирован под Android.

  • Serializable — стандартный Java-интерфейс для сериализации объектов. Используется реже из-за меньшей производительности.

  • TypeAdapter (в библиотеках Gson) — интерфейс для кастомного преобразования объектов в JSON и обратно.

  • Converter (в Retrofit) — интерфейс для преобразования HTTP-ответов в объекты и наоборот.

Пример реализации Parcelable:

class User(val name: String, val age: Int) : Parcelable {
    constructor(parcel: Parcel) : this(
        parcel.readString() ?: "",
        parcel.readInt()
    )

    override fun writeToParcel(parcel: Parcel, flags: Int) {
        parcel.writeString(name)
        parcel.writeInt(age)
    }

    override fun describeContents(): Int = 0

    companion object CREATOR : Parcelable.Creator<User> {
        override fun createFromParcel(parcel: Parcel): User = User(parcel)
        override fun newArray(size: Int): Array<User?> = arrayOfNulls(size)
    }
}