从Java切换过来的你可能会认为proxy-super相对无害,但proxy-super通过修改代理对象,然后在调用proxy-super后将其恢复,来实现其功能。这可能导致非常奇怪的行为。如果你有一个方法M的代理,该方法调用proxy-super,那么当proxy-super正在运行时,对该代理对象所有调用M的方法都将立即调用super M而不是proxied M。
使proxy-super真正安全(不仅是线程安全的,而且在使用调用栈中的同一调用的后续调用上也是安全的)可能非常困难,但这将是不错的。或者,在文档字符串中加入一些闪烁的警告灯可能是个好主意。