Я хочу создать класс Bar
таким образом, что каждый раз, когда я экземпляр Bar
, он добавляется к ArrayList<Bar>
объекта Foo
. Это то, что я пробовал:Использование «это» в конструкторах без бросать NullPointerException
class Foo {
private ArrayList<Bar> bars;
.
.
.
public ArrayList<Bar> getBars() { return bars; }
}
//in class Bar
class Bar {
public Bar(Foo f) {
f.getBars().add(this); //NullPointerException!
}
}
Я понимаю, что здесь происходит (конструктор не закончена, поэтому this
возвращается null
), но как я могу избежать этого?
Проблема не в этом. Проблема в том, что бары не инициализируются. Do bars = new ArrayList(); сначала в классе Foo (например, в его конструкторе). –
Dyrborg