Estoy escribiendo un pequeño código en J2ME. Tengo una clase con un método setTableId(Short tableId). Ahora, cuando intento escribir setTableId(100), da un error de tiempo de compilación. ¿Cómo puedo establecer el valor corto sin declarar otra variable corta?
Al establecer el Longvalor que puedo usar setLongValue(100L)y funciona. Entonces, ¿qué Lsignifica aquí y cuál es el Shortvalor del carácter ?
Gracias
java
literals
primitive-types
Mubashar
fuente
fuente

Les solo un sufijo que se usa para indicar unlongliteral.Respuestas:
En Java, los literales enteros son de tipo int por defecto. Para algunos otros tipos, puede agregar al literal como sufijo una letra que no distinga entre mayúsculas y minúsculas
L, comoD,Fpara especificar long, double o float, respectivamente. Tenga en cuenta que es una práctica común utilizar letras mayúsculas para una mejor legibilidad.La especificación del lenguaje Java no proporciona el mismo azúcar sintáctico para bytes o tipos cortos. En su lugar, puede declararlo como tal mediante la conversión explícita:
En la
setLongValue(100L)llamada al método, no es necesario que incluya elLsufijo porque en este caso el literal int se amplía automáticamente a un long. Esto se denomina conversión primitiva de ampliación en la Especificación del lenguaje Java.fuente
d/Dhace adoubleyf/Fhace flotar!0como(short)0para moverse por unpossible lossy conversion from int to shorterror, a pesar de que 0 es un corto.No existe un byte o un literal corto. Necesitas lanzar a corto usando
(short)100fuente
Por lo general, puede convertir la variable en un
short.También puede tener problemas como este que pueden resultar confusos. Esto se debe a que el
+operador los promueve aintLanzar los elementos no ayudará:
Necesitas lanzar la expresión:
fuente
Puede utilizar
setTableId((short)100). Creo que esto se cambió en Java 5 para que los literales numéricos asignados a bytes o cortos y dentro del rango para el objetivo se asuma automáticamente como el tipo de objetivo. Sin embargo, las últimas JVM J2ME se derivan de Java 4.fuente