【发布时间】:2013-04-02 04:51:42
【问题描述】:
我需要以某种方式将某些 Clojure 函数标记为“特殊”,以便 Java 代码可以使用反射来识别它们。我试图向函数添加注释,但显然不支持。我尝试了reify一个扩展IFn的接口(以便Java代码可以识别函数对象),但这并不好,因为Clojure没有直接使用reified方法作为实现invoke的代码,但是而是对实际实现该方法的Afunction 对象的间接调用(我需要用实际的函数代码标记实际的invoke 方法)。
有什么想法吗?
编辑:即使以可以使用 ASM 库(而不是常规反射)访问的方式进行标记也可以,但我需要以某种方式标记实际的 AFunction 对象或 invoke 方法。另外,我无法访问实际的 AFunction 对象——我需要标签在类上可见。
【问题讨论】:
标签: clojure clojure-java-interop