Я пытаюсь получить значения параметров, передаваемых методу, который я пересекаю.Я получаю это прямо сейчас, используя аргументы точки соединения.
Код:
@Around("@annotation(Log)")
fun log(joinPoint: ProceedingJoinPoint): Any {
val signature = joinPoint.signature as MethodSignature
val methodName = signature.method.name
val parameterTypes = signature.method.parameterTypes
var paramValues = ""
// TODO: make this a bit more useful
logger.info("begin execution of $methodName")
val startTime = System.currentTimeMillis()
val result = joinPoint.proceed()
joinPoint.args.iterator().forEach {x -> paramValues += x.toString()}
logger.info("complete execution of $methodName($paramValues) took " +
(System.currentTimeMillis() - startTime)/1000.0 + "s")
return result
}
Я хочу знать, есть ли способ получить его (значения параметров)используя метод отражения?
Я попытался получить значения таким образом, но безуспешно, и в итоге использовал joinPoint для его получения.