Блин, упустил этот момент и теперь неуверенность все время.
Вобщем, если в классе Solution имеются вложенные классы - кандидаты на сериализацию, то в каком случае Solution должен имплементить Serializable?
В некоторых задачах должен, а в
этой например не надо. От чего это зависит?
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));
}
}
Не хватает какой-то крупицы, чтоб в голове улеглось.
Вот кусок одной из предыдущих задач, в которой сериализуем класс В:
public class Solution implements Serializable{
public static class A{
public A(){}
protected String nameA = "A";
public A(String nameA) {
this.nameA += nameA;
}
}
public class B extends A implements Serializable {
private String nameB;
public B(String nameA, String nameB) {
super(nameA);
this.nameA += nameA;
this.nameB = nameB;
}
}
}
Здесь Solution должен implements Serializable. Почему должен?
Туплю немного)
Это зависит от: вложенный класс static/not static?