2011-12-04 29 views
5

¿Hay una forma simple de interceptar métodos en Java? Necesito agregar una anotación a los métodos necesarios para que se llame a una parte de la lógica antes de pasar por el método.Java: ¿usa anotaciones y métodos de interceptación?

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 
} 

EDIT:

La biblioteca guice recomendado para aplicaciones de Android no contiene AOP. ¿Es posible lograr esto usando la reflexión sin agregar ninguna biblioteca?

+0

Hola @aryaxt, ¿has encontrado una solución? Si lo hiciste, ¿puedes compartir? Encontré una biblioteca; https://code.google.com/p/android-method-interceptor/ No está documentado y no puedo entender qué hacer. – slhddn

Respuesta

0

Puede utilizar la reflexión si se ha codificado a través de las interfaces dynamic proxies.

0

dudo que se puede hacer sin ningún tipo de libs de terceros.

Hay una biblioteca llamada cglib, que es capaz de tales cosas.

Básicamente creará una subclase de la clase interceptada en tiempo de ejecución. Podrá "anular" métodos implementando un InvocationHandler, que actuará como un proxy cuando se llame a cualquiera de los métodos de superclase.

Cuestiones relacionadas