1. Ведь при создании объекта Solution solution = new Solution(); при десереализации мы не даем аргумент этому методу objectInputStream.readObject();, а вот уже при сереализации у нас objectOutputStream.writeObject(solution); с аргументом.
2. А второй вопрос почему можно использовать writeObject(Object obj) и writeObject(ObjectOutputStream obj) , мы разве в метод writeObject(добавляем поток?)
public class Solution implements Serializable {
public static class SubSolution extends Solution {
private void readObject() throws NotSerializableException {
throw new NotSerializableException();
}
}
}
public static void main(String[] args) throws IOException, ClassNotFoundException {
Solution solution = new Solution();
FileInputStream fileInputStream = new FileInputStream("");
ObjectInputStream objectInputStream = new ObjectInputStream(fileInputStream);
Solution newSolution = objectInputStream.readObject();
FileOutputStream fileOutputStream = new FileOutputStream("");
ObjectOutputStream objectOutputStream = new ObjectOutputStream(fileOutputStream);
objectOutputStream.writeObject(solution);
}
1. Если ты напишешь objectOutputStream.writeObject() - без аргумента, какой объект будет записываться в objectOutputStream?не правильно выразился, почему у нас сам метод с параметром, а при десериализации, мы его не указываем?2. writeObject(ObjectOutputStream obj) - это где такое?В правильном решении.метод writeObject() класса ObjectOutputStreamАргумент же solution, а не objectOutputStream?