Core - 1

Как не допустить сериализацию?


Чтобы предотвратить сериализацию в Java, вы можете использовать ключевое слово `transient` перед объявлением поля. Поля, помеченные как `transient` , не участвуют в процессе сериализации и не сохраняются в сериализованных данных. Пример: public class MyClass implements Serializable { private transient String myTransientField; private String mySerializableField; // ... } В этом примере поле `myTransientField` помечено как `transient` и не будет сохраняться при сериализации объекта `MyClass` . Поле `mySerializableField` будет сериализовано и сохранено в сериализованных данных. Также можно не допустить автоматическую сериализацию переопределив private методы для создания исключительной ситуации NotSerializableException. private void writeObject(ObjectOutputStream out) throws IOException { throw new NotSerializableException(); } private void readObject(ObjectInputStream in) throws IOException { throw new NotSerializableException(); } Любая попытка записать или прочитать этот объект теперь приведет к возникновению исключительной ситуации. Также можно предотвратить сериализацию путем объявления класса как `transient` , но это приведет к тому, что весь объект не будет сериализован.


Копировать ссылку