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