Можно ли переопределить собственный метод в классе Java в Android/dalvik?

Я модульно тестирую класс TestMeс помощью EasyMock, и один из его методов (говоритmethod(N n))ожидает параметр типа N, который имеет собственный метод (, напримерnativeMethod()).

class TestMe {
    void method(N n) {
        // Do stuff

        n.nativeMethod();

        // Do more stuff
    }
}

method()в какой-то момент нужно вызвать N.nativeMethod(), и проблема, с которой я столкнулся, заключается в том, что мой фиктивный объект Easymock для N не может переопределить собственный метод. У меня нет класса N, но я могу реорганизовать TestMeлюбым способом.

Я решил создать свой собственный класс FakeN extends N, который переопределяет nativeMethod, чтобы ничего не делать :

class FakeN extends N {
    FakeN(int pointer) {
        super(pointer);
    }

    @Override
    public void nativeMethod(Object o) {
        // super.nativeMethod() is an actual native method defined as:
        // public native void nativeMethod(Object o)
        //
        // IGNORE
    }
}

. но хотя компилятор не жалуется, когда я запускаю тест, оказывается, что вызывается N.nativeMethod(), а не FakeNверсия.

Есть ли здесь обходной путь, который я могу использовать?

9
задан scorpiodawg 7 June 2012 в 22:02
поделиться