Groovy:无方法签名:静态java.lang.String.ValueOf()适用于参数类型:(java.lang.String)值:[1572245927833]

时间:2019-10-28 07:17:14

标签: java groovy jsr223

我是Groovy的新手,现在在JMeter中将JS脚本重做为Groovy。在JMeter的JSR223 Groovy的以下代码中运行时,我遇到了持久错误No signature of method: static java.lang.String.ValueOf() is applicable for argument types: (java.lang.String) values: [1572245927833],该错误是带有return语句的行号的错误:

def clientTransactionIdGen() {
    String timestamp = new Date().getTime().toString();
    def rand = get_random(1000000, 9999999);
    def user_id = vars.get("user_id");
    return timestamp + String.valueOf(rand) + '^' + user_id;
}

1572245927833是以秒为单位的时间(因此为timestamp变量),并且没有与Return语句一致的ValueOf()转换。我什至将时间戳记类型从def更改为String,仍然错误指向return语句。为什么在这样的地方出现这种错误?据我了解,有一种尝试将已经字符串对象转换为String。为什么?实际上,相同的错误是当我有足够长的时间戳记并在返回行中进行转换时,这对我也是一个难题:

def clientTransactionIdGen() {
    def timestamp = new Date().getTime();
    def rand = get_random(1000000, 9999999);
    def user_id = vars.get("user_id");
    return String.valueOf(timestamp) + String.valueOf(rand) + '^' + user_id;
}

已添加:每句正确的话,所有脚本中的所有ValueOf都更改为valueOf,仍然出现上述错误并说:No signature of method: static java.lang.String.ValueOf()

已添加:重新加载JMeter后解决了,显然某些内容仍在缓存中,并且不允许进行适当的调试。

1 个答案:

答案 0 :(得分:2)

Java方法以小写valueOf开头:

return timestamp + String.valueOf(rand) + '^' + user_id;