gpt4 book ai didi

clojure - 在 Clojure 中调用 Java 可变参数方法时避免反射

转载 作者:行者123 更新时间:2023-12-02 12:20:49 26 4
gpt4 key购买 nike

我试图避免调用 IssueInputParameters.addCustomFieldValue() 时发生反射来自 JIRA API。然而,即使完全类型提示,Clojure 仍然会发出正在使用反射的警告。

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

IssueInputParameters addCustomFieldValue(Long customFieldId, String... values) 

因此,我尝试这样调用它:

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

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

Reflection warning, NO_SOURCE_PATH:1 - call to addCustomFieldValue can't be resolved.

如何避免这种情况?

最佳答案

按如下方式暗示 String[] 显式起作用:

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

关于clojure - 在 Clojure 中调用 Java 可变参数方法时避免反射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10901756/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com