Puedo crear una longitud literal al agregar una L al valor; ¿Por qué no puedo crear un corto o un byte literal de alguna manera similar? ¿Por qué necesito usar un int literal con un molde?¿Por qué no hay byte o literales cortos en Java?
Y si la respuesta es "Como no había un breve literal en C", ¿por qué no hay literales cortos en C?
Esto realmente no afecta mi vida de ninguna manera significativa; es bastante fácil escribir (abreviado) 0 en lugar de 0S o algo así. Pero la inconsistencia me da curiosidad; es una de esas cosas que te molestan cuando te levantas tarde en la noche. En algún momento, alguien tomó una decisión de diseño para permitir el ingreso de literales para algunos de los tipos primitivos, pero no para todos. ¿Por qué?
sí, por favor añadir byte sin signo :(. Para el tema que nos ocupa, creo que vale la pena mencionar que hay un largo iteral porque un int literal no puede representar todos los valores de un largo. Pero un int puede representar todos los valores de un corto, por otro lado. –
Pero creo que agrega valor; no tener que emitir puede ser una gran ventaja. 'short val = (short) (val + 10) 'es simplemente molesto, aunque Java también debería permitir la adición de' short's para que funcione. – mjaggard
@mjaggard: Se trata de agregar * valor suficientemente pequeño * para que no valga la pena. Es un poco fastidioso, pero lejos del mayor problema ... –