我有試圖通過java.nio.file.WatchEvent<?>
方式,通過Java代碼的一對夫婦層互操作(在這種情況下,java.nio.Path
一些Clojure的代碼:如何在線程( - >)宏中鍵入提示?
(defn unroll-event
[^WatchEvent event]
{ :kind (.kind event)
:context (.context event)
:path (-> event .context .toAbsolutePath .toString)})
在這段代碼中,我有一個類型暗示event
,所以我會認爲它應該能夠找出什麼.context
應該返回,因此,能夠找出什麼.toAbsolutePath
和.toString
做。我認爲在這種情況下,因爲.context
被定義已返回一個通用類型T
,I我想知道如果我可以鍵入提示.context
的電話。我已經試過了prependin摹^java.nio.file.Path
到.context
,和^Path
和^String
到.toAbsolutePath
和toString
,分別,但我仍然得到警告:
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