我正在使用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或short类型提供相同的语法糖。相反,您可以使用显式转换来声明它:
byte foo = (byte)0;
short bar = (short)0;
在你的setLongValue(100L)
方法调用中,你不一定需要包含L
后缀,因为在这种情况下,整数字面量会自动扩展为长整型。这被称为Java语言规范中的原始类型转换。
d
/D
表示 double
,f
/F
表示浮点数! - Joachim Sauer没有字节或短整型文字。你需要使用(short)100
进行强制类型转换到 short。
setTableId((short)100)
。我认为这在Java 5中已更改,以便将数字字面值分配给目标类型的字节或短整型,并且在目标范围内自动假定是目标类型。最新的J2ME JVM源自Java 4。
L
只是用来表示long
字面量的后缀。 - missingfaktor