我正在尝试在 Clojure 中实现以下 Java 接口:
package quickfix;
public interface MessageFactory {
Message create(String beginString, String msgType);
Group create(String beginString, String msgType, int correspondingFieldID);
}
以下 Clojure 代码是我这样做的尝试:
(defn -create-message-factory
[]
(reify quickfix.MessageFactory
(create [beginString msgType]
nil)
(create [beginString msgType correspondingFieldID]
nil)))
这无法编译并出现错误:
java.lang.IllegalArgumentException:无法定义不在接口中的方法:创建
文档建议重载接口方法是可以的,只要在这种情况下arity不同:
如果一个方法在协议/接口中被重载,则必须提供多个独立的方法定义。如果在接口中以相同的数量重载,则必须指定完整的提示以消除歧义-缺少提示意味着 Object.
我怎样才能得到这个工作?