Вместо этого вы можете использовать ArrayList, а затем преобразовать его в массив Integer [], который может упростить ваш код. Вот пример ниже: Сначала создайте ArrayList:
ArrayList<Integer> myNums = new ArrayList<Integer>();
Затем вы можете добавить значения, которые вы хотите, но я решил просто добавить числа 2-5, чтобы проиллюстрировать, что мы можем сделать номер 1 первый индекс и автоматически увеличивать каждое значение на один индекс. Это может упростить ваш метод addBefore () до чего-то такого:
public static void addBefore(ArrayList<Integer> aList) {
int myInt = 1;
aList.add(0, myInt);
}
Поскольку ваш ArrayList имеет ОДНУ ячейку памяти в Java, изменение массива в методе будет работать (это также будет работать для обычного массива Array). ). Затем мы можем добавить любое значение в начало ArrayList. Вы можете передать Integer этому методу в качестве второго аргумента (int x), если хотите, но я просто создал примитив myInt для упрощения кода. Я знаю, что в вашем коде у вас был параметр (int x), и вы можете добавить его в этот метод. Вы можете использовать метод ArrayList.add (), чтобы добавить int к индексу 0 массива, который будет увеличивать каждый элемент массива на 1 позицию. Затем вам нужно вызвать метод:
addBefore(myNums);//You can add the int x parameter and pass that as an arg if you want here
Затем мы можем использовать метод ArrayList.toArray (), чтобы преобразовать ArrayList в целочисленный массив. Вот пример ниже:
Integer[] integerHolder = new Integer[myNums.size()];
Integer[] numsArray = (Integer[])myNums.toArray(integerHolder);
System.out.println(Arrays.toString(numsArray));
Сначала мы создаем ArrayHolder, который будет иметь тот же размер, что и ваш ArrayList, а затем мы создаем массив, который будет хранить элементы ArrayList. Мы приводим myNums.toArray () к целочисленному массиву. Результаты будут следующими. Номер 1 будет с индексом 0, а остальные ваши элементы будут увеличены на 1 индекс:
[1, 2, 3, 4, 5]
Вы можете выполнить весь процесс внутри метода addBefore (), преобразовав Array в ArrayList в метод и добавление (int x) к индексу 0 ArrayList перед преобразованием его обратно в Array. Поскольку ArrayList может принимать только объект класса-оболочки, вам просто нужно преобразовать примитивный массив Array в тип Integer, чтобы это работало, но это упрощает ваш метод addBefore ().
Я удалил бы "финал" и просто вставил бы комментарий, "Не переопределяют этот метод!!". Если Вы не можете доверять коллегам для не следования простым инструкциям, это безнадежно так или иначе.
Следующий код также позволит Вам делать это. Я не говорю, что это - хорошая практика, но это - интересное использование (злоупотребление?) анонимных классов.
public class Jobber {
public final String foo() {
return fooFactory() ;
}
String fooFactory() {
return "jobber" ;
}
public static void main(String[] args) {
Jobber jobber = new Jobber() { String fooFactory() { return "prefix " + super.fooFactory() ;} } ;
System.out.println(jobber.foo() );
}
}