我正在为Jira开发一个groovy脚本 - 我正在收集一个问题的评论列表,并存储最后一条评论的用户名。
示例:
import com.atlassian.jira.component.ComponentAccessor
def commentManager = ComponentAccessor.getCommentManager()
def comments = commentManager.getComments(issue)
if (comments) {
comments.last().authorUser
}
有时候,我不想存储用户名(如果它属于预定义的角色)。基本上,我想首先检查注释,并从我的列表中删除符合我的条件的任何注释,然后通过调用last()。authorUser结束。类似的东西:
comments.each {
if (it.authorUser.toString().contains(user.toString())) {
// Here is where I'd want to remove the element from the list**
}
}
comments.last().authorUser // then store the last element as my most recent comment.
有意义吗?我是Groovy的新手 - 所以我完全怀疑是一堆令人头疼的问题。我遇到的大多数例子都是处理数字检查......有点难过。
答案 0 :(得分:3)
您可以使用Collection.removeAll():它通过删除与传递的闭包条件匹配的元素来修改集合。
comments.removeAll {
it.authorUser.toString().contains(user.toString())
}
comments.last().authorUser
答案 1 :(得分:0)
如今,人们可以使用Java的removeIf { it -> it.isNotDog() }
。请参见SO上的一些示例。