Итак, у меня есть очень большой класс с сотнями временных объектов, которые необходимо переинициализировать каждый раз, когда родитель (в этом случае Person.class) загружается.(класс Peron.class загружен и сохранен)
Вот пример того, какова структура моего класса в данный момент:
public final class Person {
private transient ObjectA a;
private transient ObjectB b;
private transient ObjectC c;
private transient ObjectD d;
//and hundreds more...
public Person() {
initTransientObjects();
}
private void initTransientObjects() {
a = new ObjectA();
b = new ObjectB();
c = new ObjectC();
d = new ObjectD();
//and hundreds more...
}
public void onReloadAfterFirstSave() {
initTransientObjects();
}
}
Это делает написание новых объектов очень утомительным, и я 'Мне интересно, есть ли способ сделать это более компактным, как это:
public final class Person {
private transient ObjectA a = new ObjectA();
private transient ObjectB b = new ObjectB();
private transient ObjectC c = new ObjectC();
private transient ObjectD d = new ObjectD();
//and hundreds more...
//this way I only have to type the new object once instead of twice
public void onReloadAfterFirstSave() {
//what here? because now transient fields are null
}
}
Обратите внимание, что причина, по которой я не могу использовать вышеизложенное, заключается в том, что, очевидно, когда Person загружается снова, переходные поля не будутзагружен и, следовательно, автоматически устанавливается равным нулю.
Что мне здесь делать?
Редактировать:
Есть также непереходные объекты, которые я сохраняю и в классе Personкак эти переходные поля, поэтому использовать это не вариант:
Peron person = new Person(); //every load