我有一个具有多种功能的课程
class Foo() {
fun one() {
//do something
}
fun two() {
// do something
}
fun three() {
// do something
}
}
如何触发对我拥有的Logger对象的调用,以便在日志中可以看到所有已访问或已调用的函数,而无需在每个函数上都明确放置log调用以保持代码干净。我正在尝试对服务api调用中调用的所有功能进行完整的日志跟踪,但是我不想有这样的内容
class Foo() {
fun one() {
log.call()
//do something
}
fun two() {
log.call()
// do something
}
fun three() {
log.call()
// do something
}
}
答案 0 :(得分:1)
您无法在普通的Kotlin中做到这一点。但这正是Aspect-Oriented Programming的目的。
我还没有使用过它,但是如果您想在Kotlin中使用它,可以看看Spring AOP。另请参见讨论here和this问题。
答案 1 :(得分:1)
在Java中,我将编写一个IvocationHandler来创建动态代理。参见this question