Mub*_*har 96 java literals primitive-types
我在J2ME中编写了一些代码.我有一个方法课setTableId(Short tableId)
.现在当我尝试编写setTableId(100)
它时会出现编译时错误.如何在不声明另一个短变量的情况下设置短值?
设置Long
值时,我可以使用setLongValue(100L)
它,它的工作原理.那么,L
这里的含义是什么,Short
价值的特征是什么?
谢谢
Lau*_*uri 156
在Java中,整数文字的类型为int,除非它们以字母'L'或'l'为后缀(首选L是优选的,因为小写L很难与数字1区分).如果以L为后缀,则文字的类型为long.
后缀在Java语言规范中没有任何特殊名称.任何其他整数类型都没有后缀.因此,如果您需要短文本或字节文字,则必须将它们转换为:
byte foo = (byte)0;
short bar = (short)0;
Run Code Online (Sandbox Code Playgroud)
在setLongValue(100L)中,您不必必须包含L后缀,因为在这种情况下,int literal会自动扩展为long.这在Java语言规范中称为扩展原语转换.
mat*_*rns 18
通常,您可以将变量强制转换为short
.
您也可能会遇到此类令人困惑的问题。这是因为+
运营商将他们提升为int
铸造元素无济于事:
您需要转换表达式:
你可以用setTableId((short)100)
.我认为这在Java 5中已经改变,因此分配给字节或短的并且在目标范围内的数字文字被自动假定为目标类型.最新的J2ME JVM源自Java 4.