避免在Clojure中调用Java可变方法时的反射

Cha*_*ffy 4 clojure

我试图避免从JIRA API 调用IssueInputParameters.addCustomFieldValue()时的反射.但是,即使完全打字,Clojure仍会发出反射正在使用的警告.

javadocs中给出的方法签名如下:

IssueInputParameters addCustomFieldValue(Long customFieldId, String... values) 
Run Code Online (Sandbox Code Playgroud)

因此,我试图将其称为:

(fn [^com.atlassian.jira.issue.IssueInputParameters i, ^Long l]
  (.addCustomFieldValue i l (into-array String ["foo"])))
Run Code Online (Sandbox Code Playgroud)

实际调用有效,但始终使用反射:

Reflection warning, NO_SOURCE_PATH:1 - call to addCustomFieldValue can't be resolved.
Run Code Online (Sandbox Code Playgroud)

如何避免这种情况?

Cha*_*ffy 6

提示String[]明确工作完成如下:

(fn [^com.atlassian.jira.issue.IssueInputParameters i, ^Long l]
  (.addCustomFieldValue i l
    ^"[Ljava.lang.String;" (into-array String ["foo"])))
Run Code Online (Sandbox Code Playgroud)