Configuración de valor corto Java

Estoy escribiendo un pequeño código en J2ME. Tengo una clase con un método setTableId(Short tableId) . Ahora, cuando bash escribir setTableId(100) me da error de comstackción. ¿Cómo puedo establecer el valor corto sin declarar otra variable corta?

Al configurar Long value, puedo usar setLongValue(100L) y funciona. Entonces, ¿qué significa L aquí y cuál es el personaje de Valor Short ?

Gracias

    En Java, los literales enteros son de tipo int a menos que estén sufijos con la letra ‘L’ o ‘l’ (se prefiere la mayúscula L ya que la minúscula L es difícil de distinguir del número 1). Si tiene el sufijo L, los literales son de tipo largo.

    El sufijo no tiene ningún nombre especial en la Especificación del lenguaje Java. Tampoco hay sufijos para ningún otro tipo entero. Por lo tanto, si necesita un literal corto o de byte, deben ser cascados:

     byte foo = (byte)0; short bar = (short)0; 

    En setLongValue (100L) no es necesario que incluya necesariamente el sufijo L porque en este caso el literal int se amplía automáticamente a largo. Esto se denomina conversión primitiva de ampliación en la especificación de lenguaje de Java.

    No existe un byte o literal corto. Tienes que lanzar al corto usando (short)100

    Puede usar setTableId((short)100) . Creo que esto se modificó en Java 5 de modo que se asume automáticamente que los literales numéricos asignados a byte o short y dentro del rango para el target son el tipo de destino. Sin embargo, las últimas JVM de J2ME derivan de Java 4.