« Algunos beneficios prácticos de la programación orientada a objetos | Inicio | [J2ME] Aplicación de ejemplo: un dado »

[J2ME]: Clase Random

¿Cuántas veces habré oido a algún javero decir que el flash es muy raro?. Bueno, pues Java también tiene sus cositas. Como por ejemplo la clase Random, que no es igual en J2ME y en J2EE.

Una vez leída la documentación con más atención, resulta obvio, pero el caso es que hoy he perdido casi una hora intentando generar un número aleatorio en un rango determinado.

El problema viene porque la clase Random que forma parte del MIDP 1.0 no implementa el método nextInt( int i ), que generaría un número aleatorio menor que i, y que sí implementa la clase Random de J2EE "estándar".

¿La solución?. Recurrir al método nextInt( ), que sí está implementado:

Random random = new Random( ); int randomNumber = Math.abs( random.nextInt() % UPPER_LIMIT );

donde UPPER_LIMIT es una constante cuyo valor es la cota superior del intervalo.

Supongo que para los que tengan más experiencia en J2ME es obvio, pero para mí no lo ha sido.