Frage

Gibt es eine einfache Möglichkeit, Methoden in Java abzufangen? Ich muss eine Annotation zu den erforderlichen Methoden hinzufügen, damit ein Stück Logik vor der Methode aufgerufen wird.

public void verifyActivity() {
   // Asset if you are on a wrong page
}

@VerifyActivity
public void testLogin() {
   // Login for my automate test
}

@VerifyActivity
public void testSomethingElse() {
   // Test some other UI Automation stuff
}

BEARBEITEN:

Die empfohlene Guice -Bibliothek für Android -Apps enthält keine AOP. Ist es möglich, dies mit Reflexion zu erreichen, ohne Bibliotheken hinzuzufügen?

War es hilfreich?

Lösung

Guice bietet eine einfache Möglichkeit, Anmerkungen zu implementieren. Schau dir das an.

http://code.google.com/p/google-guice/wiki/aop

http://code.google.com/p/google-guice/

Andere Tipps

Wie Sid Malani sagte Google Guice ist großartig dafür. Im Allgemeinen möchten Sie sich nachlesen Aspekt orientierte Programmier -Tutorials ... Es gibt ein schönes Werkzeug namens namens Jmangler Das kann auch von Nutzen sein

Sie können Reflection verwenden, wenn Sie Schnittstellen bis durch Dynamische Stellvertreter.

Ich bezweifle, dass es ohne Libs der Drittanbieter schön gemacht werden kann.

Es gibt eine Bibliothek namens CGlib, die zu solchen Dingen fähig ist.

Grundsätzlich wird eine Unterklasse der abgefangenen Klasse zur Laufzeit erstellt. Sie können Methoden "überschreiben", indem Sie einen InvocationHandler implementieren, der als Proxy fungiert, wenn eine der Superklassenmethoden aufgerufen wird.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top