user=> (set! *warn-on-reflection* true) true user=> (.contains [] 0) 反射警告,NO_SOURCE_PATH:1:1 - 在 clojure.lang.IPersistentVector 上调用 contains 方法的调用无法解析(没有此类方法)。 false user=> (.contains [1] 0) false user=> (.contains ^:foo [1] 0) 反射警告,NO_SOURCE_PATH:1:1 - 在 clojure.lang.IPersistentVector 上调用 contains 方法无法解析(没有此类方法)。 false user=> (.contains [(inc 1)] 0) 反射警告,NO_SOURCE_PATH:1:1 - 在 clojure.lang.IPersistentVector 上调用 contains 方法无法解析(没有此类方法)。 false
更糟糕的是,类型提示没有被发现。
user=> (.contains ^java.util.Collection [] 0) 反射警告,NO_SOURCE_PATH:1:1 - 在 clojure.lang.IPersistentVector 上调用 contains 方法的调用无法解析(没有此类方法)。 false user=> (.contains ^java.util.Collection [(inc 1)] 0) 反射警告,NO_SOURCE_PATH:1:1 - 在 clojure.lang.IPersistentVector 上调用 contains 方法无法解析(没有此类方法)。 false user=> (.contains ^java.util.Collection (identity [(inc 1)]) 0) false
类似的问题也适用于其他字面量。