В следующем коде я получаю предупреждение об отражении:
(ns com.example
(:import
[org.apache.commons.cli CommandLine Option Options PosixParser]))
(def *help-option* "help")
(def *host-option* "db-host")
(def *options*
(doto (Options.)
(.addOption "?" *help-option* false "Show this usage information")
(.addOption "h" *host-option* true "Name of the database host")))
(let
[^CommandLine command-line (.. (PosixParser.)
(parse *options* (into-array String args)))
db-host (.getOptionValue command-line "h")] ; WARNING HERE ON .getOptionValue
; Do stuff with db-host
)
У меня есть подсказка типа на command-line
. Почему предупреждение?
Я использую Clojure 1.2 в OS X 10.6.6 (Apple VM).
Я предполагаю, что не получает предупреждение о (.addOption ...)
, потому что компилятор знает, что (Options.)
является org.apache.commons.cli.Options)
.