评论由:sohta发表
这可能超出了这个工单的范畴,但协议方法冲突可能会引起其他类型的错误
`
user=> (defprotocol P1 (finalize [this]))
P1
user=> (defrecord R1 [] P1 (finalize [this]))
编译器异常 java.lang.VerifyError: (类:user/R1, 方法:finalize 签名:()Ljava/lang/Object;) 在空栈上无法弹出操作数,编译中:...
user=> (defprotocol P2 (wait [this]))
P2
user=> (defrecord R2 [] P2 (wait [this]))
user.R2
user=> (def r (->R2))
'user/r
user=> (wait r)
编译器异常 java.lang.IllegalArgumentException: 未找到接口:user.P2中的单个方法:wait,用于协议:P2中的函数:wait,编译中:...
user=>
`
在我看来,如果defprotocol能以更详细的通知信息告警方法冲突那就更好了。