2012-01-27 12 views

risposta

6

Il linguaggio di programmazione Java non ha un costrutto per farlo. Tuttavia, è possibile farlo con uno dei pacchetti AOP (Aspect Oriented Programming), ad esempio AspectJ.
In particolare, questa discussione potrebbe essere un buon punto di partenza su come raggiungere questo obiettivo:

http://dev.eclipse.org/mhonarc/lists/aspectj-users/msg09939.html

La mia opinione personale, tuttavia, è che la maggior parte del tempo AOP è un eccessivo spaventoso.

AGGIORNAMENTO: Oh, here's un modo più semplice utilizzando Spring AOP, presupponendo che sia possibile utilizzare Spring. Generalmente, Spring è molto più facile da usare rispetto ad AspectJ puro.

+0

Overkill spaventoso? Potresti spiegarlo un po '? –

+2

Bene, in pratica stai modificando il comportamento del tuo programma tramite un meccanismo completamente esterno alla lingua e al tuo codice sorgente. Sono diffidente nei confronti di cose del genere. Fanno il debug e leggono il codice sorgente (specialmente senza IDE AOP-aware) un processo molto più impegnativo. –

3

Non esiste un modo generico incorporato nella lingua stessa. Tuttavia, ci sono alcune cose che potrebbero serie i vostri bisogni:

  1. vostro IDE potrebbe avere le macro per generare un println
  2. Se siete interessati solo a argomenti di dumping attraverso qualche strato, e tutte le chiamate sono attraverso metodi di interfaccia, puoi usare i proxy Java.
  3. è possibile utilizzare alcuni manipolazione bytecode, sia posta compilare o durante classloading
  4. lasciare che qualcun fare il duro lavoro di 3 #, e imparare da soli AOP
Problemi correlati