Sobes.tech
Back to questions
Middle
86
questionbank

Как сериализовать объект вашего класса, если одно из его полей несериализуемо?

Sobes Copilot

Get answers in real time

Answer from AI

sobes.tech AI

Использовать @Transient аннотацию (если поле не нужно сохранять) или предоставить пользовательскую логику сериализации/десериализации с помощью @JsonAdapter, writeReplace/readResolve или кастомного TypeAdapter (например, в Gson).

Пример с @Transient в Kotlin (для Serializable):

import java.io.Serializable

data class User(
    val id: Int,
    @Transient val nonSerializableField: Any // Поле не будет сериализовано
) : Serializable

Пример с @JsonAdapter в Gson:

import com.google.gson.annotations.JsonAdapter;

class MyClass {
    int id;
    @JsonAdapter(NonSerializableFieldAdapter.class)
    NonSerializableField nonSerializableField; // Поле будет сериализовано с помощью адаптера
}