Basic CLR interop - clojure/clojure-clr GitHub Wiki
All the basic functions for interop mentioned on http://clojure.org/java_interop work as advertised. This includes all of
- Member access
(.instanceMember instance args*)(.instanceMember Classname args*)(Classname/staticMethod args*)Classname/staticField
- Dot special form
(. instance-expr member-symbol)(. Classname-symbol member-symbol)(. instance-expr (method-symbol args*))or(. instance-expr method-symbol args*)(. Classname-symbol (method-symbol args*))or(. Classname-symbol method-symbol args*)
- Instantiation
(Classname. args*)(new Classname args*)
- Assignment
(set! (. instance-expr instanceFieldName-symbol) expr)(set! (. Classname-symbol staticFieldName-symbol) expr)
- Miscellaneous
(.. instance-expr member+)(.. Classname-symbol member+)(doto instance-expr (instanceMethodName-symbol args*)*)(instance? Class expr)(memfn method-name arg-names*)
Most of the array interop functions work.
Note that, in CLR, the names of nested classes are separated from their containing classes with a +, as in Classname+NestedClassName, rather than with a $, as the JVM uses.
The things not implemented yet (and perhaps never):
beanparse