Java:必须转换为短,不能使用简写“S”

Cod*_*ube 1 java casting short java-7

我正在尝试调用一个需要短值的函数。以下作品:

i.setDamage((short) 10);
Run Code Online (Sandbox Code Playgroud)

然而,这并不:

i.setDamage(10S);
Run Code Online (Sandbox Code Playgroud)

根据我正在使用的 IDE,这应该可以工作。为什么不呢?我正在使用 Maven 和 Java 7。

Ted*_*opp 5

根据Java 语言规范第 3.10.1 节,整数文字的唯一整数类型后缀是L(或小写l)。

\n
\n

如果整数字面量以 ASCII 字母 L 或 l (ell) 为后缀,则该整数字面量为 long 类型;否则它的类型为 int ( \xc2\xa74.2.1 )。

\n

后缀 L 是首选,因为字母 l (ell) 通常很难与数字 1(一)区分开。

\n
\n

你只需要坚持使用演员阵容即可。(尽管如果值在范围内,您可能可以只使用整数文字而不进行强制转换。)

\n