我刚刚开始学习J2ME,而且直接使用Random类时我遇到了这个错误。 Arg,这太令人沮丧了。以前有人遇到过同样的问题吗?我已经尝试重新启动Eclipse,只编写随机生成器的代码来隔离它,但无济于事。 顺便说一句,我正在使用CLDC 1.1和MIDP 2.1。
答案 0 :(得分:2)
似乎你指出了错误的CLDC和MIDP库。 CLDC 1.1中存在new Random().nextInt(x)。
如果您使用的是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;
}
(与CLDC 1.1中的nextInt(int)相同)。
答案 1 :(得分:1)
nextInt(int)仅在CLDC 1.1之后可用,因此您必须指定CLDC 1.1而不是1.0
如果你指定了cldc 1.1仍然会得到这个错误,那很可能是eclipse的错误。花了我几个小时才找到: 在Eclipse中转到Windows - &gt;偏好 - &gt; Java ME - &gt;设备管理 - &gt;选择您的默认设备 - &gt;编辑 - &gt;图书馆 - &gt;在那里你必须删除cldc_1.0.jar
答案 2 :(得分:0)
我在netbeans中遇到了同样的问题,并解决了它。
我刚刚离开JMUnit进行CLDC11。不确定我是否需要它。一旦我弥补了失去的时间,也许我会在没有它的情况下进行测试。