Если, и вы до сих пор не уточнили это, программа вылетает с NPE в этой строке:
System.out.printf("%d", tempsr.getSt().getId());
либо:
tempsr
является нулевым. tempsr.getSt()
возвращает нулевое значение.
(1) произойдет, если вы напишите нулевое значение с помощью writeObject()
, что можно проверить на сайте записи.
(2) произойдет, если базовый атрибут будет (a) нулевым, (b) transient
или (c) static
: или, например, если нет базового атрибута, если методкак-то вычислил ноль.