【发布时间】:2022-01-06 14:32:46
【问题描述】:
我正在开发一个关于 Jira 工作流的脚本(使用 Adaptavist Scriptrunner v.6.34),我遇到了一个问题,即 groovy 不接受接口实现作为其签名允许实现接口的函数的参数。
代码
import com.atlassian.jira.issue.link.DefaultRemoteIssueLinkManager;
(...)
def remoteLink = DefaultRemoteIssueLinkManager.getRemoteIssueLinksForIssue(issue)
(issue 是 com.atlassian.jira.issue.IssueImpl 类型的构建变量)
会发生什么
groovy.lang.MissingMethodException: No signature of method: static com.atlassian.jira.issue.link.DefaultRemoteIssueLinkManager.getRemoteIssueLinksForIssue() is applicable for argument types: (com.atlassian.jira.issue.IssueImpl) values: [ADA-24684]
Possible solutions: getRemoteIssueLinksForIssue(com.atlassian.jira.issue.Issue)
at Script6.run(Script6.groovy:32)
我不明白 groovy 怎么不接受接口实现。
到目前为止我尝试了什么
- 将我的变量转换为
Issue类型 - 将我的变量转换为类型
Issue - 将我的变量转换为类型
MutableIssue(the first-level inherited interface) - 将我的变量转换为类型
MutableIssue - 将我的变量转换为类型
AbstractIssue(the first-level inherited class) - 将我的变量转换为类型
AbstractIssue
所有这些情况都返回了原始异常。
我已经打印了类的方法和接口,并且所有内容都与文档匹配,因此这里没有版本不匹配。
我不知道还能做什么,因为它超出了我的 java/groovy 知识。我问过哪些是 Java 专家的同事,他们没有找到这种行为的原因。有什么想法吗?
【问题讨论】:
标签: inheritance groovy jira signature