我原本预期下面的两个 Java 互操作调用都会避免反射,但实际上只有第一个涉及 f1 的调用做到了。
`
Clojure 1.6.0
user=> (set! warn-on-reflection true)
true
user=> (defn f1 ^java.util.LinkedList [coll] (java.util.LinkedList. coll))
'user/f1
user=> (def f2 (fn ^java.util.LinkedList [coll] (java.util.LinkedList. coll)))
'user/f2
user=> (.size (f1 [2 3 4]))
3
user=> (.size (f2 [2 3 4]))
反射警告,NO_SOURCE_PATH:5:1 - 无法解析对字段 size 的引用。
3
`
不确定这与 CLJ-1232 有关吗?但它是测试该问题的变体时发现的。