Groovy给出的错误预期为EOF,找到'';@第9行第25栏

Groovy给出的错误预期为EOF,找到'';@第9行第25栏,groovy,mule,anypoint-studio,Groovy,Mule,Anypoint Studio,我使用下面的代码在Groovy中生成随机数。我可以在groovyweb控制台()中运行它,它可以工作,但是当我尝试在Mule中运行它时,它失败了。以下是我使用的代码: log.info ">>run" Random random = new Random() def ranInt = random.nextInt() def ran = Math.abs(​ranInt)​%20​0; log.info ">>sleep counter:"+flowVars.counte

我使用下面的代码在Groovy中生成随机数。我可以在groovyweb控制台()中运行它,它可以工作,但是当我尝试在Mule中运行它时,它失败了。以下是我使用的代码:

log.info ">>run"
Random random = new Random()
def ranInt = random.nextInt()
def ran = Math.abs(​ranInt)​%20​0;
log.info ">>sleep counter:"+flowVars.counter+" ran: "+ran
sleep(ran)
下面是引发的异常:

原因: org.codehaus.groovy.control.multipleCompationerErrorSexception: 启动失败:Script26.groovy:9:应为EOF,在第9行找到“?”, 第25栏。def ran=数学绝对值(?400)?%20?0; ^

1错误


第4行中有一些额外的unicode字符。如果将其转换为十六进制,您将得到:

64 65 66 20 72 61 6e 20 3d 20 4d 61 74 68 2e 61 62 73 28 e2 80 8b 72 61 6e 49 6e 74 29 e2 80 8b 25 32 30 e2 80 8b 30 3b
def ran = Math.abs(​ranInt)​%20​0;
现在,如果您将此十六进制转换回ascii,您将得到:

64 65 66 20 72 61 6e 20 3d 20 4d 61 74 68 2e 61 62 73 28 e2 80 8b 72 61 6e 49 6e 74 29 e2 80 8b 25 32 30 e2 80 8b 30 3b
def ran = Math.abs(​ranInt)​%20​0;
在第一个
,在
之后)和第一个
0
之后添加了一个字符
。如果删除它,代码将正确编译

以下是策展线条的十六进制:

64 65 66 20 72 61 6e 20 3d 20 4d 61 74 68 2e 61 62 73 28 72 61 6e 49 6e 74 29 25 32 30 30 3b
以及线路本身:

def ran = Math.abs(ranInt)%200;

你是个天才:)@Buddhi-Nah,我以前也遇到过类似的问题:)现在我有了新的问题,当Ranit是ex的负数:-139709715时,Math.abs失败了,所以我尝试使用类似int absVal=(Ranit>0)的代码?ranInt:(-1*ranInt)log.info“>>absVal:+absVal当ranInt为负值时,它也会失败