Как разрешить исключение NullPointerException, когда я использую Serializable с моими классами и переходный процесс со Scanner? - PullRequest
1 голос
/ 04 февраля 2012

Мне было интересно, что мне нужно сделать, чтобы устранить эту ошибку.С тех пор, как сканер в моем классе стал переходным, и я хочу его сериализовать, я теперь получаю исключение nullpointerexception, когда используется первый экземпляр того, где используется сканер (in).

, т.е. in.next ();

Я впервые использую Serializable в своей работе.Я сделал все мои классы высшего уровня Сериализуемыми.

Мне также было интересно, нужно ли что-либо делать с моими структурами данных, такими как массивы, массивы и т. Д. Какие вещи нужно пометить как переходные?

Любая помощь, высоко ценимая

1 Ответ

2 голосов
/ 04 февраля 2012

Значения в переходных полях не сохраняются при сериализации объекта. Одним из решений является реализация метода writeObject, который повторно инициализирует переходные поля после десериализации объекта, как описано здесь: http://java.sun.com/developer/technicalArticles/Programming/serialization/

Однако наличие объекта Scanner в сериализуемом классе звучит немного странно. Вероятно, вам следует разделить это на два класса - сериализуемый класс, который содержит данные, которые вы хотите сериализовать, и другой класс, который выполняет пользовательский интерфейс или чтение файла или что бы вы ни делали с Scanner.

...