有几个框架的例子尝试将 Java 类名解构为一个 Clojure 符号(包括命名空间);这在报告异常时记录一个改进的、针对 Clojure 的特定堆栈跟踪很有用。
现有的库基于正则表达式匹配和猜测,有时可能会给出错误的结果,例如当命名空间或函数名实际上包含下划线时。
如果 Clojure 能在此类中公开一个具有应出现在堆栈跟踪中的正确名称的静态最终字段,那么对于此类框架的作者来说将会有所帮助;库然后可以使用反射来访问字段的正确名称,而不需要当前的猜测。
我建议将此类字段命名为 CLOJURE_SOURCE_NAME。
除了函数之外的其他 Clojure 类结构,例如具体化类型和协议实现,也会受益,尽管确切字符串值可以正确且明确地标识类扮演何种作用这一点可能不那么明显。