2010-11-13 99 views
1

我剛開始學習J2ME,並從蝙蝠右鍵使用Random類時出現此錯誤。精靈,這太令人沮喪了。任何人都有同樣的問題嗎?我已經嘗試重新啓動Eclipse,只編寫隨機生成器的代碼來隔離它,但無濟於事。 我正在使用CLDC 1.1和MIDP 2.1。J2ME錯誤 - 類型Random中的nextInt()方法不適用於參數(int)

+0

你能複製一段代碼和完整的錯誤信息嗎? – 2010-11-13 10:23:42

+0

我得到類似於int R = random.nextInt(256)與隨機作爲靜態隨機生成器的所有行的錯誤。我得到的錯誤是:Random類型的nextInt()方法不適用於參數(int) – fred 2010-11-13 10:28:29

回答

2

似乎你指出了錯誤的CLDC和MIDP庫。 new Random().nextInt(x)存在於CLDC 1.1中。 (在CLDC 1.1相同的實現爲nextInt(INT)。)

public static int random(Random r, int n) { 

    if ((n & -n) == n) // i.e., n is a power of 2 
     return (int)((n * (long)r.nextInt()) >> 31); 

    int bits, val; 
    do { 
     bits = r.nextInt(); 
     val = bits % n; 
    } while(bits - val + (n-1) < 0); 

    return val; 
} 

+0

我確定我指定了CLDC 1.1但是 – fred 2010-11-13 10:31:57

+0

hm ...如果我不能確定爲什麼。謝啦! – fred 2010-11-13 10:36:52

+1

我敢打賭,你不小心指定了CLDC 1.0,因爲[那個'Random'](http://download.oracle.com/javame/config/cldc/ref-impl/cldc1.0/jsr030/java/util/Random。 html)缺少'Random.nextInt(int)'方法。 – aioobe 2010-11-13 11:13:51

1
  • 如果您正在使用CLDC 1.0,你可以創建自己的實現nextInt(INT)的nextInt(int)僅在CLDC 1.1之後可用,因此您必須指定CLDC 1.1而不是1.0

  • 如果您指定了cldc 1.1,那麼仍然會得到此錯誤,它很可能是ecl錯誤IPSE。花了我幾個小時在Eclipse中找到: 轉到Windows - >首選項 - > Java ME - >設備管理 - >選擇你的默認設備 - >編輯 - >庫 - >在那裏你必須刪除cldc_1.0.jar

0

我在netbeans有同樣的問題,並解決它。

  1. 右鍵單擊您的項目,進入屬性。
  2. 轉到圖書館&資源下構建
  3. 使用JMUnit用於添加庫
  4. 滾動的CLDC11
  5. 單擊確定 和建設。所有問題解決。

我剛剛離開JMUnit CLDC11那裏。不確定我是否需要它。也許一旦我彌補了失去的時間,我會在沒有它的情況下進行測試。

相關問題