Ошибка J2ME - метод nextInt () в типе Random не применим для аргументов (int) - PullRequest
1 голос
/ 13 ноября 2010

Я только начал изучать J2ME, и прямо с летучей мыши я получил эту ошибку при использовании класса Random.Арг, это так расстраивает.У кого-нибудь была такая же проблема раньше?Я уже пытался перезапустить Eclipse, написать только код для генератора случайных чисел, чтобы изолировать его, но безрезультатно.Кстати, я использую CLDC 1.1 и MIDP 2.1.

Ответы [ 3 ]

2 голосов
/ 13 ноября 2010

Кажется, вы указываете на неправильные библиотеки CLDC и MIDP. new Random (). NextInt (x) существует в CLDC 1.1.

Если вы используете CLDC 1.0, вы можете создать собственную реализацию 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;
}

(Та же реализация, что и в nextInt (int) в CLDC 1.1.)

1 голос
/ 15 ноября 2010
  • nextInt (int) доступно только начиная с CLDC 1.1, поэтому вы должны указать CLDC 1.1 вместо 1.0

  • , если вы указали cldc 1.1, все еще получитьэта ошибка, скорее всего, ошибка затмения.Мне потребовались часы, чтобы найти: в Eclipse перейдите в Windows -> Настройки -> Java ME -> Управление устройствами -> выберите устройство по умолчанию -> Редактировать -> Библиотеки -> Там вы должны удалить cldc_1.0.jar

0 голосов
/ 10 июля 2011

У меня была та же проблема в netbeans, и я решил ее.

  1. Щелкните правой кнопкой мыши по своему проекту, перейдите в свойства.
  2. Перейти к библиотекам и ресурсам при сборке
  3. Добавить библиотеку
  4. прокрутка для JMUnit для CLDC11
  5. нажмите ОК и построить. все проблемы решены.

Я только что оставил JMUnit для CLDC11 там. не совсем уверен, если мне это нужно. может быть, я протестирую без него, как только восполню потерянное время.

...