2010-10-19 44 views
1

我在寻找将整数随机生成的整数。GROOVY如何将随机数整理为一个整数

我试过各种手段,但似乎没有工作。我的最新尝试如下:

def som = Math.random() * totalContacts 
log.info som 
som.toInteger() 
log.info som 
def cleaned = parseInt(som) 
log.info cleaned 

我收到以下错误,当我执行上面的代码 -

(我登录到控制台后,每一步只是为了检查我的结果。)

groovy.lang.MissingMethodException:方法的无 签名: Script69.parseInt()是适用于 参数类型:(java.lang.Double中) 值:[44.405365593296]可能 个解决方案:打印(java.lang.Object中), 打印(java.io.PrintWriter中), 打印(java.lang.Object中)

感谢, 理查德

回答

2

的问题似乎是那在这条线

def cleaned = parseInt(som) 

somDouble并没有parseInt方法,它接受Double说法。你没有显示你的进口,但我想你已经静态导入Integer.parseInt,并试图调用。

下面的变化应该工作:

def som = Math.random() * totalContacts 
log.info som 
som.toInteger() 
log.info som 
def cleaned = som.toInteger() 
log.info cleaned 

然而,它似乎像你想在这里做的是产生范围0..totalContacts(包括两端)的随机整数。如果是这样,下面是一个简单的解决方案:

import org.apache.commons.lang.math.RandomUtils 
import java.util.Random 

Integer som = RandomUtils.nextInt(new Random(), totalContacts + 1) 
+0

您好我最终得到这个工作: 高清索姆=的Math.random()* totalContacts randomSeed = som.toInteger() log.info randomSeed 但也会尝试你的反应! 干杯! – 2010-10-26 06:09:33

0

最简单的方法是:

def som = Math.random() * totalContacts as int 

log.info som