这是那些需要使用带有类型提示的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=>