使用multimethods,我们可以向现有的
Java类添加方法.我的问题是,是否有可能重新定义一种特定方法,以及如何从Clojure代码中重新定义.例如,如果您有以下课程,
public class Shape { public void draw() { ... } }
(attach-to-method Shape/draw :before (println "... about to draw a shape"))
在评估该表单后,所有后续的绘制调用将在执行调用之前开始打印字符串.
我之前/之后/周围,类似AOP的行为的附件的目的是,可以动态地更改在现有实例上调用该方法的框架并开始运行新附加的代码.目前我正在使用AspectJ,但我已经到了使用不同的编译器不是一个选项,我很想知道我是否可以放弃AspectJ.