Java - Anmerkungen und Abfangmethoden verwenden?
-
28-10-2019 - |
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?
Lösung
Guice bietet eine einfache Möglichkeit, Anmerkungen zu implementieren. Schau dir das an.
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.