我在J2ME中编写了一些代码。我有一个方法setTableId(Short tableId)
。现在,当我尝试编写setTableId(100)
时,它会产生编译时错误。如何在不声明另一个短变量的情况下设置短值?
设置Long
值时,我可以使用setLongValue(100L)
,它的工作原理。那么,L
在这里意味着什么,以及Short
价值的特征是什么?
谢谢
在Java中,整数文字的类型为int,除非它们以字母'L'或'l'为后缀(首选L是优选的,因为小写L很难与数字1区分)。如果以L为后缀,则文字的类型为long。
后缀在Java语言规范中没有任何特殊名称。任何其他整数类型都没有后缀。因此,如果您需要短文本或字节文字,则必须将它们转换为:
byte foo = (byte)0;
short bar = (short)0;
在setLongValue(100L)中,您不必必须包含L后缀,因为在这种情况下,int literal会自动扩展为long。这在Java语言规范中称为扩展原语转换。
没有字节或短文字这样的东西。你需要使用(short)100
来施放
你可以使用setTableId((short)100)
。我认为这在Java 5中已经改变,因此分配给字节或短的并且在目标范围内的数字文字被自动假定为目标类型。最新的J2ME JVM源自Java 4。