It seems that Clojure 1.2.0 has a definterface form, apparently for creating Java interfaces, and some people recommend using it (e.g. one answer to this number crunching question). However, I cannot seem to find any documentation or substantial examples of how to use it. Am I not looking in the right place, or is it actually such an early feature that it should not be used? I'm interested in pointers to documentation or examples demonstrating the features of definterface.

1 Answers

kotarak On Best Solutions

Have a look at the documentation of gen-interface.

The rough form is:

(definterface Foo
  [bar [Arg1Type Arg2Type] ReturnType]
  [sideEffects [int] void]

EDIT: You are right. The interface is closer to that of defprotocol than that of gen-interface.

(definterface Foo
  [^int foo [x ^String y]]
  [^void bar [^ints is]])