函数调用所需的类型转换将short数据类型变量作为参数

时间:2011-02-24 15:33:23

标签: java primitive-types

每当我使用byte或short数据类型作为方法参数时,在方法调用上,我需要显式地转换我传递给这些方法的值。

为了更好地解释:

void foo(short x)
{}
void main() {foo((short)32);}

如果我在此处不使用短片,则会生成警告。

method foo in class px cannot be applied to given types
required: byte
found: int

我怎样才能让它变得更好?

2 个答案:

答案 0 :(得分:4)

没有出路。

Java没有办法对byteshort文字进行编码。任何数字文字都是int值,将int转换为short而不进行强制转换会始终产生警告。

答案 1 :(得分:3)

整数文字隐式具有int类型,从int转换为byteshort可能会丢失信息,因此需要显式转换。

所以除非你真的需要,否则不要使用byteshort,这种情况很少见。