一般来说,像是 @before 和 @after 这种,用扩展函数就可以很方便的实现了。更复杂一点的概念,如果把 Kotlin 里面的 receiver 、scope 函数、 @this 之类的雕花技弄熟练然后配合良好的 OOP 设计感觉其实也可以实现差不多的效果吧。(草,不加代码块直接变成 at 人了(捂脸
我不熟悉 Scala ,不过如果本着「 Kotlin 能做到的 Scala 都能做到」的原则,那应该 Scala 也不是问题(雾
感觉这样写起来也许比起 AOP 的写法会啰嗦一点,但是代码层面上是很透明的,类型安全也可以得到保证,可读性和可维护性应该都是优于反射和 AOP 满天飞的 Java 代码吧。
并不是很喜欢 lombok 那套,感觉预处理的写法让代码变得不透明了。AOP 里面拿字符串写跳转更是让人头皮发麻。
感觉这也是不喜欢 Java 的一个很重要的因素……很多本来可以让语言来提供的功能都一概欠缺,然后实际工程里发现写不下去就不得不上一些非常 dirty hack 的写法,如果团队的水平不高直接变成灯谜大会。