4. В конструкторе класса Rocket поле downFire должно инициализироваться новым объектом типа RocketFire, конструктор которого принимает список, содержащий ShapeMatrix.FIRE_DOWN_1, ShapeMatrix.FIRE_DOWN_2, ShapeMatrix.FIRE_DOWN_3 в указанном порядке. 5. В конструкторе класса Rocket поле leftFire должно инициализироваться новым объектом типа RocketFire, конструктор которого принимает список, содержащий ShapeMatrix.FIRE_SIDE_1, ShapeMatrix.FIRE_SIDE_2. 6. В конструкторе класса Rocket поле rightFire должно инициализироваться новым объектом типа RocketFire, конструктор которого принимает список, содержащий ShapeMatrix.FIRE_SIDE_1, ShapeMatrix.FIRE_SIDE_2. Не принимается вот такой код:
List<int[][]> tempList = new ArrayList<>();
tempList.add(ShapeMatrix.FIRE_DOWN_1);
tempList.add(ShapeMatrix.FIRE_DOWN_2);
tempList.add(ShapeMatrix.FIRE_DOWN_3);
downFire = new RocketFire(tempList);
tempList.clear();
tempList.add(ShapeMatrix.FIRE_SIDE_1);
tempList.add(ShapeMatrix.FIRE_SIDE_2);
leftFire = new RocketFire(tempList);
rightFire = new RocketFire(tempList);
Собственно, я понимаю, что проблема в использовании одного и того же списка дважды, но не понимаю, почему. По логике, объект downFire должен быть уже создан и проинициализирован. Почему после вызова конструктора на него влияет изменение параметра, с которым он вызывается?