Зачем transient у fullName и greeting? При десереализации конструктор не вызывается же , значит и поля эти будут нулевые
пс видел что много кто до меня задал этот вопрос, но я так и не понял по их комментам
public class Solution {
public static class Person implements Serializable{
String firstName;
String lastName;
transient String fullName;
transient final String greeting;
String country;
Sex sex;
transient PrintStream outputStream;
transient Logger logger;
Person(String firstName, String lastName, String country, Sex sex) {
this.firstName = firstName;
this.lastName = lastName;
this.fullName = String.format("%s, %s", lastName, firstName);
this.greeting = "Hello, ";
this.country = country;
this.sex = sex;
this.outputStream = System.out;
this.logger = Logger.getLogger(String.valueOf(Person.class));
}
}