我需要以某种方式将某些 Clojure 函数标记为“特殊”,以便 Java 代码可以使用反射来识别它们。我试图向函数添加注释,但显然不支持。我尝试过reify
扩展接口IFn
(以便 Java 代码可以识别函数对象),但这并不好,因为 Clojure 并没有直接使用 reified 方法作为代码实现invoke
,而是间接调用Afunction
实际上是实现方法(我需要invoke
用实际的功能代码标记实际的方法)。
有任何想法吗?
编辑:即使以可以使用 ASM 库(而不是常规反射)访问的方式进行标记也可以,但我需要以某种方式标记实际AFunction
对象或invoke
方法。此外,我无法访问实际AFunction
对象——我需要标签在类上可见。