Ist es möglich, eine native Methode in einer Java-Klasse in Android / Dalvik zu überschreiben?

Ich teste eine KlasseTestMe mit EasyMock und einer seiner Methoden (sagen wirmethod(N n)) erwartet einen Parameter vom TypN das hat eine native Methode (sagen wirnativeMethod()).

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

        n.nativeMethod();

        // Do more stuff
    }
}

method() muss aufrufenN.nativeMethod() Irgendwann ist das Problem, dass mein Easymock-Mock-Objekt für N die native Methode nicht überschreiben kann. Ich besitze keine Klasse N, kann aber umgestaltenTestMe in irgendeiner Weise notwendig.

Ich beschloss, meine eigene Klasse zu machenFakeN extends N welche überschreibtnativeMethod nichts tun:

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
    }
}

Aber während der Compiler sich nicht beschwert, scheint es so, als würde ich den Test ausführenN.nativeMethod() wird angerufen und nichtFakeNs Version.

Gibt es hier eine Problemumgehung, die ich verwenden kann?

Antworten auf die Frage(1)

Ihre Antwort auf die Frage