У меня есть класс, который я использую для хранения данных, которые я извлекаю из базы данных с объектами в виде полей. Я хочу инициализировать объекты при создании экземпляра класса, чтобы избежать проблем с нулевым указателем. Я думал, что где-то читал, что он не должен инициализировать поля в объявлении поля, потому что это может вызвать проблемы для Struts (но я не могу найти утверждение сейчас), поэтому я инициализирую поля в конструкторе.Каков правильный способ инициализации полей в Struts2?
Мой вопрос: имеет значение, каким образом вы это делаете? Или вы не должны делать это вообще и только ставить новые объекты после создания экземпляра класса? Другими словами, должен ли я определять свой класс следующим образом:
public class MenuView implements Serializable {
/**
*
*/
private static final long serialVersionUID = 1L;
private ProjectInfo projectInfo;
private PartyInfo partyInfo;
private RequestTableInfo requestTableInfo;
private PartyRequestInfo partyRequestInfo;
public MenuView(){
projectInfo = new ProjectInfo();
partyInfo = new PartyInfo();
requestTableInfo = new RequestTableInfo();
partyRequestInfo = new PartyRequestInfo();
}
, за которым следует геттеры и сеттеры или вот так.
public class MenuView implements Serializable {
/**
*
*/
private static final long serialVersionUID = 1L;
private ProjectInfo projectInfo = new ProjectInfo();
private PartyInfo partyInfo = new PartyInfo();
private RequestTableInfo requestTableInfo = new RequestTableInfo();
private PartyRequestInfo partyRequestInfo = new PartyRequestInfo();
public MenuView(){ }
с последующим геттеров и сеттеры или как это:
public class MenuView implements Serializable {
/**
*
*/
private static final long serialVersionUID = 1L;
private ProjectInfo projectInfo;
private PartyInfo partyInfo;
private RequestTableInfo requestTableInfo;
private PartyRequestInfo partyRequestInfo;
public MenuView(){}
с последующим геттеры и сеттеры, а затем его экземпляр так:
MenuView menu = new MenuView();
menu.setProjectInfo(new ProjectInfo);
Его всегда лучше всего инициализировать в конструкторе, поэтому вызов его экземпляра избегает нулевого указателя –