junior
Как исключить поля из сериализации?
Для исключения полей из сериализации используется ключевое слово transient. Поле, помеченное transient, пропускается при стандартной сериализации и при десериализации получает значение по умолчанию для своего типа (null, 0, false).
Пример
public class User implements Serializable {
private String name; // сериализуется
private transient String password; // НЕ сериализуется
private transient int cachedHash; // НЕ сериализуется
}
Другие способы исключения
| Способ | Применяется к |
|---|---|
transient |
Стандартная Java-сериализация |
Externalizable |
Полный контроль — не записываете поле вручную |
@JsonIgnore |
Jackson (JSON-сериализация) |
@Expose + excludeFieldsWithoutExposeAnnotation() |
Gson |
@JsonbTransient |
Jakarta JSON-B |
На собеседовании: достаточно назвать
transientи объяснить, что после десериализации поле будет иметь значение по умолчанию. Если спрашивают про JSON — добавьте@JsonIgnore.