开发者

Setting Short Value Java

开发者 https://www.devze.com 2022-12-20 20:24 出处:网络
I am writing a little code in J2ME. I have a class with a method setTableId(S开发者_如何转开发hort tableId). Now when I try to write setTableId(100) it gives compile time error. How can I set the shor

I am writing a little code in J2ME. I have a class with a method setTableId(S开发者_如何转开发hort tableId). Now when I try to write setTableId(100) it gives compile time error. How can I set the short value without declaring another short variable?

When setting Long value I can use setLongValue(100L) and it works. So, what does L mean here and what's the character for Short value?

Thanks


In Java, integer literals are of type int by default. For some other types, you may suffix the literal with a case-insensitive letter like L, D, F to specify a long, double, or float, respectively. Note it is common practice to use uppercase letters for better readability.

The Java Language Specification does not provide the same syntactic sugar for byte or short types. Instead, you may declare it as such using explicit casting:

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

In your setLongValue(100L) method call, you don't have to necessarily include the L suffix because in this case the int literal is automatically widened to a long. This is called widening primitive conversion in the Java Language Specification.


There is no such thing as a byte or short literal. You need to cast to short using (short)100


Generally you can just cast the variable to become a short.

You can also get problems like this that can be confusing. This is because the + operator promotes them to an int

Setting Short Value Java

Casting the elements won't help:

Setting Short Value Java

You need to cast the expression:

Setting Short Value Java


You can use setTableId((short)100). I think this was changed in Java 5 so that numeric literals assigned to byte or short and within range for the target are automatically assumed to be the target type. That latest J2ME JVMs are derived from Java 4 though.

0

精彩评论

暂无评论...
验证码 换一张
取 消