我正在用 J2ME 编写一些代码。我有一个方法类setTableId(Short tableId)
。现在,当我尝试编写时setTableId(100)
,它会给出编译时错误。如何在不声明另一个短变量的情况下设置短值?
设置Long
值时,我可以使用setLongValue(100L)
它并且它可以工作。那么,L
这里的意思是什么,价值的特征是Short
什么?
谢谢
我正在用 J2ME 编写一些代码。我有一个方法类setTableId(Short tableId)
。现在,当我尝试编写时setTableId(100)
,它会给出编译时错误。如何在不声明另一个短变量的情况下设置短值?
设置Long
值时,我可以使用setLongValue(100L)
它并且它可以工作。那么,L
这里的意思是什么,价值的特征是Short
什么?
谢谢
在 Java 中,整数字面量默认为 int 类型。对于其他一些类型,您可以在文字后面加上不区分大小写的字母,如L
, D
,F
以分别指定 long、double 或 float。请注意,为了提高可读性,通常使用大写字母。
Java 语言规范没有为字节或短类型提供相同的语法糖。相反,您可以使用显式强制转换来声明它:
byte foo = (byte)0;
short bar = (short)0;
在您的setLongValue(100L)
方法调用中,您不必一定包含L
后缀,因为在这种情况下,int 文字会自动加宽为 long。这在 Java 语言规范中称为加宽原语转换。
没有字节或短文字之类的东西。您需要使用(short)100
您可以使用setTableId((short)100)
. 我认为这在 Java 5 中已更改,因此分配给 byte 或 short 且在目标范围内的数字文字被自动假定为目标类型。不过,最新的 J2ME JVM 是从 Java 4 派生的。