Class Random

5 respostas
ramilani12

Estou utilizando a classe Random para gerar um numero aleatorio entre 0 e 100
nas minhas configurações utilizei o CLDC 1.1 e compilou certinho mas ao mudar para CLDC 1.0 gerou um erro na qual não entendi:

int randomNumber = random.nextInt(100);

:\Raphael\Sistemas\JAVA\J2ME\apps\Rmilani\src\Rmilani.java:41: nextInt() in 
java.util.Random cannot be applied to (int)
        randNumber =  random.nextInt(100);
                             ^
1 error
com.sun.kvem.ktools.ExecutionException
Build failed

Lendo a documentação da classe Random é desde CLDC 1.0 e randNumber é um int prq ao mudar para CLDC 1.0 gera este erro ?
Alguem ja passou por isso ?

5 Respostas

Sami_Koivu

Olá,

Não manjo muito do que faz parte de cada versão de CLDC, mas esse erro é bastante comum.

Quer dizer, que  existe o método

Random.getInt();

e não existe método:

Random.getInt(int);

nem nenhum outro método que aceitasse um int como parâmetro.
Ou seja, aparentemente quando você está usando CLDC1.1 você tem esse dois métodos disponíveis:

<a href="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Random.html#nextInt()" data-bbcode="true">http://java.sun.com/j2se/1.5.0/docs/api/java/util/Random.html#nextInt()</a>

<a href="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Random.html#nextInt(int)" data-bbcode="true">http://java.sun.com/j2se/1.5.0/docs/api/java/util/Random.html#nextInt(int)</a>

mas com CLDC1.0 você só tem o primeiro.

[]s,
Sami

thokk
Set rscom2 = Server.CreateObject("ADODB.Recordset")

SQLcom2 = "SELECT id,dados1,dados4 FROM registros where categoria = 3 order by id Desc"

rscom2.Open sqlcom2, conn_com2, 3

upperbound = 1
lowerbound = 5

if rscom2.eof and rscom2.bof then
response.write ""
else
do while not rscom2.eof

rndm2 = CInt(rscom2.recordcount)
rscom2.movefirst

randomize Timer
rndnum2 = int(rnd*rndm2)
rscom2.move rndnum2

response.write "" & Ucase(rscom2("dados1")) & "<br>"

rscom2.movenext
loop
end if

set rscom2 = nothing

talvez te ajude em alguma coisa!!!
este daqui ele conecta em um banco e pega o maximo!!!

ramilani12

Resolvi o problema o CLDC 1.0 só tem o método nextInt();

então fiz assim:

randNumber = Math.abs((random.nextInt()%100)+1);

Não sei prq ele estava retornado numeros negativos então usei a classe Math para deixar o numero absoluto o %100 para gerar os numeros aleatorios 0 a 100 + 1

Valeu pela ajuda!

A

quikkoo

andyoster:
Escreva uma classe que possa ser usada na implementação de um jogo de adivinhação de números. Quando o método de inicialização é executado, a classe sorteia um valor entre 0 e 100 automaticamente. O método boolean testaChute(int chute) recebe um ?chute? por parâmetro e devolve true se o chute corresponde ao valor sorteado e false caso contrário. O método int pista(int chute) recebe o valor de um chute por parâmetro e devolve 1 se o número chutado é maior que o sorteado, 0 se for igual e -1 se for menor. Para sortear números aleatórios pesquise o uso da classe Random.
[b] :hunf:
q isso? quer q alguem lhe entregue um programa pronto? nao espere por isso, mas se tem alguma duvida especifica de como fazer entao pergunte q ajudaremos

flw, t+

Criado 30 de novembro de 2006
Ultima resposta 18 de abr. de 2007
Respostas 5
Participantes 5