2010-10-19 160 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