Sobes.tech
Назад к вопросам
Middle
87
questionbank

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

Sobes Copilot

Получайте ответы в реальном времени

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

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; // Поле будет сериализовано с помощью адаптера
}