私はjava.nio.file.WatchEvent<?>
の仕方によってjava.nio.Path
、この場合には(Javaコードのカップルの層を貫通して相互運用しようとしているいくつかのClojureのコードを持っています。このコードではスレッド( - >)マクロ内にヒントを入力するにはどうすればよいですか?
(defn unroll-event
[^WatchEvent event]
{ :kind (.kind event)
:context (.context event)
:path (-> event .context .toAbsolutePath .toString)})
、私はタイプがevent
を示唆しているので、私は希望それはでなければなりません.context
が何を返すのか分かり、それで、.toAbsolutePath
と.toString
が何をするのか分かります。この場合、.context
が定義されているので、T
私が.context
への呼び出しをヒントに入力できるかどうか疑問に思っています。私はちょうどprependin .context
にグラム^java.nio.file.Path
、および.toAbsolutePath
とtoString
から^Path
と^String
、それぞれが、私はまだ警告を得る:
Reflection warning, junkcode/core.clj:28 - reference to field toAbsolutePath can't be resolved.
Reflection warning, junkcode/core.clj:28 - reference to field toString can't be resolved.
は、私はこのケースで行うことができるものはありますか?それは->
がマクロであり、その中にタイプヒントのための特別なルールがあるからですか?
何を拡大しますか? 'clojure.walk/macroexpand-all'を使う – noahlz