设置短值 Java

我正在用 J2ME 编写一些代码。我有一个具有 setTableId(Short tableId)方法的类。现在,当我尝试编写 setTableId(100)时,它会出现编译时错误。如何在不声明另一个短变量的情况下设置 short 值?

当设置 Long值时,我可以使用 setLongValue(100L),它工作。那么,L在这里是什么意思,Short值的字符是什么?

谢谢

160820 次浏览

你可以使用 setTableId((short)100)。我认为这在 Java5中被改变了,所以分配给 byte 或 short 的数值文本和目标范围内的数值文本被自动假定为目标类型。不过,最新的 J2MEJVM 是从 Java4派生出来的。

没有字节或者短文字这样的东西。您需要使用 (short)100来强制转换为短文字

在 Java 中,整数文本默认为 int 类型。对于其他类型,可以在文字后面加上不区分大小写的字母,如 LDF,以分别指定 long、 double 或 float。注意,为了提高可读性,通常使用大写字母。

Java 语言规范没有为 byte 或 short 类型提供相同的语法糖。相反,您可以使用显式强制转换将其声明为:

byte foo = (byte)0;
short bar = (short)0;

setLongValue(100L)方法调用中,不一定要包含 L后缀,因为在这种情况下,int 文本会自动扩展为 long。这在 Java 语言规范中称为扩展原语转换。

一般情况下,您只需将变量强制转换为 short即可。

您还可能遇到这样的问题,这些问题可能会让您感到困惑。这是因为 +操作员将它们提升为 int

enter image description here

释放元素于事无补:

enter image description here

你需要表达这样的意思:

enter image description here