Учитывая следующий класс:
package my.pack;
public class Foo {
public static void varArgsMethod(Object ... arrr) {
}
}
при анализе этого с использованием Doclet
, я получаю MethodDoc
для 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"]))))