Как пойти о насмешке класса с последними методами?

Вместо этого вы можете использовать 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 ().

6
задан Rogério 28 August 2014 в 18:26
поделиться

3 ответа

Можно попробовать JMockit насмешка библиотеки.

6
ответ дан 17 December 2019 в 02:35
поделиться

Я удалил бы "финал" и просто вставил бы комментарий, "Не переопределяют этот метод!!". Если Вы не можете доверять коллегам для не следования простым инструкциям, это безнадежно так или иначе.

0
ответ дан 17 December 2019 в 02:35
поделиться

Следующий код также позволит Вам делать это. Я не говорю, что это - хорошая практика, но это - интересное использование (злоупотребление?) анонимных классов.

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() );
    }
}
0
ответ дан 17 December 2019 в 02:35
поделиться
Другие вопросы по тегам:

Похожие вопросы: