Является ли хорошей практикой иметь все поля равными нулю и просто создавать их, когда они требуются?
public class Products {
private Map listofProducts = null;
private Owner owner = null;
private List<listOfProductsResults> listofProductsResults = null;
private String fileName = null;
private long id = 0L;
public Products(){
}
Таким образом, всякий раз, когда метод нуждается в каждом из них, я делаю следующее
if(listOfProducts == null){
this.listOfProducts = new HashMap();
}
private Map listofProducts = null;
а также
private Map listOfProducts;
Являются равными утверждениями, поэтому нет. Это бессмысленно, и мне действительно не нравится внешний вид кода.
Java auto инициализирует объекты нулевым значением, но иногда явное его указание на null может быть формой документации, если ничего другого. Например, обычно можно было бы ожидать, что конструктор будет инициализировать атрибуты экземпляра. Одно свойство, явно инициализированное нулем, может сказать: "это не инициализируется в конструкторе" или "это использует ленивую инициализацию, остерегайтесь". Это может означать всегда прокси-сервер через getter или ожидать, что доступ будет защищен нулевой проверкой. Но вам следует установить такой шаблон.
NullPointerExceptions,
но это не подразумевается ничем, изложенным в этом ответе.