Добрый день. Изучаем сериализацию. В данном случае, надо поставить запрет сериализации. Так вот, почему если поставить у SubSolution.writeObject модификатор доступа public, то сериализация пройдет ? Что-то не могу понять. Буду благодарен за ссылку на похожий вопрос или статью/литературу.
public class TestFile implements Serializable {
public static void main(String args[]) throws Exception
{
FileOutputStream fileOutput = new FileOutputStream("FilePath");
ObjectOutputStream outputStream = new ObjectOutputStream(fileOutput);
SubSolution subSolution = new SubSolution();
outputStream.writeObject(subSolution);
fileOutput.close();
outputStream.close();
}
public static class SubSolution extends TestFile {
private void writeObject(ObjectOutputStream objectOutput) throws Exception {
throw new NotSerializableException();
}
private void readObject(ObjectInputStream objectInput) throws Exception {
throw new NotSerializableException();
}
}
}
В документации на Serializable
написано:
Классы, требующие специальной обработки в процессе сериализации и десериализации должны реализовывать специальные методы с в точности такими сигнатурами:
private void writeObject(java.io.ObjectOutputStream out)
throws IOException
private void readObject(java.io.ObjectInputStream in)
throws IOException, ClassNotFoundException;
private void readObjectNoData()
throws ObjectStreamException;
Данные методы вызываются через reflection, соответствующие объекты Method
заполняются с учетом требований выше. При замене private
на public
метод не считается подходящим и игнорируется.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Ребят я задавал вопрос но неправильно его составил
Заметил что при создании различных типов Activity при создании приложения, к ним прикручиваются разные стили для чекбоксов и спиннеров, при создании...