Как заполнить приватный массив в другом классе через геттер/сеттер ? (используя Arrays.fill)

Подскажите пожалуйста, как заполнить приватный массив в другом классе через геттер/сеттер ? (используя Arrays.fill) В одном классе массив и геттер/сеттер:

private int[] attempts = new int[10];

public int[] getAttempts() {
    return Arrays.copyOf(attempts, numberOfAttempt + 1);
}

public void setAttempt(int index, int number) {
    attempts[index] = number;
}

В другом классе нужно обнулить этот массив в части заполненных вариантов, используя Arrays.fill:

Arrays.fill(player1.getAttempts(), 0);

Данный вариант не обнуляет массив.

Если я делаю геттер следующим:

public int[] getAttempts() {
    return attempts;
}

то обнуление срабатывает.

Но как осуществить обнуление через первоначальные геттер/сеттер и возможно ли это ?

Заранее спасибо за ответ!


Ответы (1 шт):

Автор решения: IR42

Arrays.copyOf как бы намекает, что возвращается копия оригинального массива, т.е. другая память, другая ссылка. Естественно, обнуление копии никак не повлияет на оригинальный массив. Можно сделать такой метод в вашем классе:

public void fill(int number) { 
    Arrays.fill(attempts , number); 
}

Ну либо возвращает ссылку на оригинальный массив.

→ Ссылка