2011-12-04 11 views
5

C'è un modo semplice per intercettare i metodi in java. Devo aggiungere un'annotazione ai metodi richiesti in modo che una parte della logica venga chiamata prima di passare attraverso il metodo.Java: utilizzare le annotazioni e i metodi di intercettazione?

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 consigliato per le applicazioni Android non contiene AOP. È possibile ottenere questo risultato usando la riflessione senza aggiungere alcuna libreria?

+0

Ciao @aryaxt, hai trovato una soluzione? Se lo hai fatto, puoi condividere? Ho trovato una biblioteca; https://code.google.com/p/android-method-interceptor/ Non è documentato e non riesco a capire cosa fare. – slhddn

risposta

0

È possibile utilizzare la riflessione se si è codificato per interfacce attraverso dynamic proxies.

0

dubito che può essere fatto bene senza alcuna librerie di terze parti.

C'è una libreria chiamata cglib, che è capace di tali cose.

Fondamentalmente creerà una sottoclasse della classe intercettata in fase di esecuzione. Sarai in grado di "sovrascrivere" i metodi implementando un InvocationHandler, che fungerà da proxy quando viene chiamato uno dei metodi della superclasse.

Problemi correlati