Как заполнить приватный массив в другом классе через геттер/сеттер ? (используя 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 шт):
Arrays.copyOf как бы намекает, что возвращается копия оригинального массива, т.е. другая память, другая ссылка. Естественно, обнуление копии никак не повлияет на оригинальный массив. Можно сделать такой метод в вашем классе:
public void fill(int number) {
Arrays.fill(attempts , number);
}
Ну либо возвращает ссылку на оригинальный массив.