我试图调用一个需要短值的函数。以下作品:
i.setDamage((short) 10);
然而,这不是:
i.setDamage(10S);
根据我使用的IDE,这应该可行。为什么不呢?我正在使用Maven和Java 7。
答案 0 :(得分:4)
根据Java Language Specification, Section 3.10.1,整数文字的唯一整数类型后缀为L
(或小写l
)。
如果整数文字后缀为ASCII字母L或l(ell),则其长度为long;否则它的类型为int(§4.2.1)。
后缀L是首选,因为字母l(ell)通常很难与数字1(一)区分开来。
你只需坚持演员。 (尽管如果值在范围内,您可以在没有强制转换的情况下使用整数文字。)
答案 1 :(得分:0)
答案 2 :(得分:0)
JAVA不为S
提供s
或short
等后缀。您需要使用short
转换为(short)100
。
可能的值是
int num = 20; //Decimal
int num = 020; //octal
int num = 0x20; //Hexadecimal
int num = 0b1010; //binary
long num = 563L; //long
在JDK 7中,您可以在一个整数文字中嵌入一个或多个下划线,如
int num = 19_90;