Первый случай: существует класс, в котором в качестве члена данных используется другой класс.Когда создается этот класс, что мы должны делать с элементом данных?
(A) В конструкторе: this.anotherClass = new AnotherClass ();
(B) оставил его нулевым, нетнужно создать его экземпляр.
Я бы предпочел (C) В конструкторе: требуется ненулевой AnotherClass
параметр.
Если вам нужен конструктор по умолчанию и вы всегда ожидаетеВызывающий также должен вызывать setAnotherClass()
, после чего вы можете оставить его null
в конструкторе и проверить на нулевое значение, когда вы фактически используете поле, в противном случае вам, вероятно, следует создать объект AnotherClass
по умолчанию в конструкторе.
Второй случай: существует класс, в котором ArrayList является элементом данных.Когда создается этот класс, что мы должны делать с ArrayList?
(A) В конструкторе: this.bulidingList = new ArrayList ();(B) оставил его пустым, нет необходимости создавать его экземпляр.
Я бы всегда создавал его экземпляр, но если список доступен только для чтения, я бы объявил его таким образом:
List<Building> buildingList = Collections.emptyList();
Третий случай: когда мы создаем метод, в котором его тип возвращаемого значения является коллекцией, например
public ArrayList getBuildingList () {/// Бах Бах Бах ..}
если здания нет, мы должны вернуть пустой ArrayList "new ArrayList ()" "или ноль.
Я не особо горжусь этим,но я иногда возвращаю null
, когда мне нужно дополнительное возвращаемое значение, что-то вроде getBuildingsListAndReturnNullIfThereAreNoTenants
. Когда вы просто хотите сказать: «Я не нашел никаких зданий», всегда лучше вместо этого возвращать пустой список.
Иногда вы можете выполнить предварительную проверку и вернуть Collections.emptyList()
вместо создания нового ArrayList<Building>
экземпляра, но я бы не стал делать это изо всех сил.