给定以下课程:
package my.pack;
public class Foo {
public static void varArgsMethod(Object ... arrr) {
}
}
当使用 a 分析这个时Doclet
,我得到一个MethodDoc
for varArgsMethod
,但该方法isVarArgs
返回false
。为什么不返回true
?
Clojure 中的代码:
(defn -start [^com.sun.javadoc.RootDoc root]
(doseq [^com.sun.javadoc.ClassDoc c (.classes root)
^com.sun.javadoc.MethodDoc m (.methods c)]
(try (println (.name m))
(println "varargs:" (.isVarArgs m))
(println "arity:" (count (.parameters m)))
(println "return type:" (.returnType m))
(catch Throwable e
(println "something went wrong with" m))))
true)
;; requires JDK 11 now: JAVA_HOME=~/Downloads/jdk-11.0.2.jdk/Contents/Home
(defn -main []
(println (System/getProperty "java.home"))
(let [dt (ToolProvider/getSystemDocumentationTool)]
(.run dt nil nil nil
(into-array ["-doclet" "clj_kondo.Doclet"
"-public"
"--source-path" "/tmp/"
"my.pack"]))))