Javaコードのいくつかのレイヤーを介して相互運用しようとしているいくつかのClojureコードがあります(この場合、次java.nio.Path
の方法でjava.nio.file.WatchEvent<?>
:
(defn unroll-event
[^WatchEvent event]
{ :kind (.kind event)
:context (.context event)
:path (-> event .context .toAbsolutePath .toString)})
このコードでは、私は type Hinted を持っているevent
ので、何が返されるべきかを理解できるはずであり、そのため、何を理解して何をすべきかを理解できるはずです。この場合、is defined はジェネリック型を返すので、 への呼び出しをタイプヒントできるかどうか疑問に思っています。、 、 、 、 、 にそれぞれ前置しようとしましたが、それでも警告が表示されます。.context
.toAbsolutePath
.toString
.context
T
.context
^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.
この場合、何かできることはありますか?->
マクロであり、その中にタイプヒントの特別なルールがあるためですか?