Domanda

Esiste un modo semplice per intercettare i metodi in Java. Devo aggiungere un'annotazione ai metodi richiesti in modo che un pezzo di logica venga chiamato prima di passare attraverso il metodo.

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
}

MODIFICARE:

La libreria Guice consigliata per le app Android non contiene AOP. È possibile raggiungere questo obiettivo usando la riflessione senza aggiungere librerie?

È stato utile?

Soluzione

Guice fornisce un modo semplice di implementare annotazioni. Controllalo.

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

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

Altri suggerimenti

Come ha detto Sid Malani Google Guice è fantastico per questo. In generale vuoi leggere Tutorial di programmazione orientata all'aspetto ... c'è un bel strumento chiamato Jmangler Potrebbe anche essere utile

Puoi usare la riflessione se hai codificato per interfacce Proxy dinamici.

Dubito che possa essere ben fatto senza libri di terza parte.

C'è una biblioteca 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 HinvocationHandler, che fungerà da proxy quando uno dei metodi superclasse viene chiamato.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top