Clojure中的许多宏在其宏展开时代码编译器执行时都有规范。
那时,extend-protocol
没有这样的规范。
我想知道 extend-protocol
是否应与(Class/forName ..)
一起使用,或者扩展协议的类名必须始终是一个符号。规范是获得此答案的自然地方。extend-protocol
已知不会与提供多个参数的 Class/forName
一起工作。
(extend-protocol IFoo (Class/forName "[B") (Class/forName "[D"))
语法错误(IllegalArgumentException),在(REPL:1:1)处编译。不知道如何从:java.lang.Character 创建 ISeq
如果规范对此有任何说明,我还可以在 clj-kondo 中为此编写 linting。到目前为止,这还不明确:(extend-protocol IFoo (Class/forName "[B"))
也是可行的。