I często znajduję się robić coś takiego w celu zalogowania wyjście wywołania metoda:Czy istnieje czysty sposób rejestrowania wyniku metody w Groovy?
def someMethod() {
def retVal = //stuff
log.debug("The return value is: $retVal")
retVal
}
to wydaje się dużo ceremonii Wystarczy zalogować zwracanej wartości metody. Wiem, że mogę używać programowania zorientowanego na aspekt (AOP), aby robić tego rodzaju rzeczy, ale miałem nadzieję, że zrobię to za pomocą właśnie Groovy.
Groovy ma świetną adnotację @Memoize
do automatycznego zapamiętywania wywołań metodycznych, więc ma podobny rodzaj adnotacji, aby zrobić to, co robię?
Idealnie, chciałbym się spodziewać czegoś czystego, na przykład:
@LogReturn("debug")
def someMethod() {
// Stuff
}
Uwaga 1: Wiem, że mogę korzystać z meta-programowania zawinąć metodę w inny sposób, ale miałem nadzieję, aby móc uczynić go bardziej jednoznaczne z adnotacją
Uwaga 2: Jestem również otwarty na sugestie dotyczące realizacji tego w inny sposób
To nie osiąga tego, o co w ogóle chodzi. Nie chcę jawnie rejestrować wartości 'return' w mojej metodzie, chcę, aby była wykonana przez coś innego. Chodzi o to, aby nadal uzyskać rejestrację, ale zachować ciało metody "czystej" – cdeszaq