这是您需要使用类型提示的let
的地方。
user=> (require '[clojure.java.io :as io])
nil
user=> (import '(java.io File FileFilter))
java.io.FileFilter
user=> (let [dir (io/file ".")
^FileFilter f File/.isDirectory]
(.listFiles dir f))
#object["[Ljava.io.File;" 0x37c5fc56 "[Ljava.io.File;@37c5fc56"]
尽管如此,鉴于这一点
user=> (instance? clojure.lang.IMeta File/.isDirectory)
true
你原来的版本和这个版本似乎都没有起作用,这有点令人惊讶。
user=> (let [dir (io/file ".")
f ^FileFilter File/.isDirectory]
(.listFiles dir f))
Syntax error (IllegalArgumentException) compiling . at (REPL:3:10).
More than one matching method found: listFiles
user=>