首页 > 解决方案 > Groovy Array.pop() 返回无方法签名:java.lang.String.pop()

问题描述

我在 jenkins 中使用 groovy,我需要在其中获取最后一个单词。假设字符串是STATUS = "EXECUTE SIT". 所以我所做的就是拆分字符串,这样我就可以得到一个数组STATUS.split(),然后弹出这样我就可以得到 SIT 字符串STATUS.split().pop()。但它返回一个错误No signature of method: java.lang.String.pop(),我对 Groovy 或 Java 不太熟悉,所以我真的不知道我是否正确使用了这些方法。

标签: javagroovy

解决方案


我很确定你得到的错误实际上是No signature of method: [Ljava.lang.String;.pop() is applicable for argument types: () values: []. 注意[L- 这意味着你有一个数组,而不是一个列表。

split()String[]返回一个不支持使用pop()或许多其他 Groovy 增强功能的字符串 () 数组。

而是使用tokenize()which 返回一个List. 一旦你有了一个列表,你就可以使用pop()或更恰当地使用last(). pop()在 Groovy 2.5 中更改为删除第一项而不是最后一项。removeLast()如果您确实要删除最后一项,请使用。

"EXECUTE SIT".tokenize().last()
===> SIT

推荐阅读