Java - использовать аннотации и методы перехвата? - PullRequest
5 голосов
/ 04 декабря 2011

Есть ли простой способ перехватить методы в Java.Мне нужно добавить аннотацию к необходимым методам, чтобы перед выполнением метода вызывался фрагмент логики.

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
}

РЕДАКТИРОВАТЬ:

Рекомендуемая библиотека guiceдля приложений Android не содержит АОП.Можно ли добиться этого с помощью отражения без добавления каких-либо библиотек?

Ответы [ 4 ]

2 голосов
/ 04 декабря 2011

Guice обеспечивает простой способ реализации аннотаций. Проверьте это.

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

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

1 голос
/ 05 декабря 2011

Как сказал Сид Малани Google Guice отлично подходит для этого. В общем, вы хотите прочитать учебники по аспектно-ориентированному программированию ... Есть хороший инструмент под названием JMangler , который также может пригодиться

0 голосов
/ 21 декабря 2013

Я сомневаюсь, что это можно сделать без каких-либо сторонних библиотек.

Существует библиотека cglib, которая способна на такие вещи.

По существу, она создаст подкласс перехваченного класса во время выполнения.Вы сможете "переопределить" методы, реализовав InvocationHandler, который будет действовать как прокси при вызове любого из методов суперкласса.

0 голосов
/ 05 декабря 2011

Вы можете использовать отражение, если вы закодировали интерфейсы через динамические прокси.

...