When working with existing java classes I often get reflection warnings if I've done something incorrectly, e.g.
IllegalArgumentException No matching field found: gets for class java.lang.String clojure.lang.Reflector.getInstanceField (Reflector.java:271)
Is clojure doing reflection at runtime for each invocation of the given methods? or is this cached in any sort of way? Would there be a speed benefit to moving any kind of involved java-interop into a related java class?