Spesso mi ritrovo a fare qualcosa di simile, al fine di registrare l'uscita di una chiamata di metodo:Esiste un modo pulito per registrare il risultato di un metodo in Groovy?
def someMethod() {
def retVal = //stuff
log.debug("The return value is: $retVal")
retVal
}
Questo mi sembra un sacco di cerimonia per registrare solo il valore di ritorno del metodo. So che posso usare Aspect Oriented Programming (AOP) per fare questo genere di cose, ma speravo di farlo solo con Groovy.
Groovy ha l'ottima annotazione @Memoize
per le chiamate al metodo di auto-memoize, quindi ha un tipo di annotazione simile a @LogReturn
per fare ciò che sto cercando?
Idealmente, mi sarei aspettato qualcosa di pulito, come questo:
@LogReturn("debug")
def someMethod() {
// Stuff
}
Nota 1: so che potrei utilizzare meta-programmazione per avvolgere il metodo in un altro metodo, ma speravo di essere in grado di rendere più esplicito con un'annotazione
Nota 2: sono anche aperti ai suggerimenti per realizzare questo in un modo diverso
Questo non raggiunge affatto quello che sto cercando. Non voglio dover registrare esplicitamente il valore 'return' del mio metodo, voglio che sia fatto da qualcos'altro. L'obiettivo è di ottenere ancora il logging, ma mantenere il corpo del metodo "puro" – cdeszaq