【发布时间】:2015-08-17 18:54:46
【问题描述】:
我是 Java 编程新手,我正在使用数组。在数组中 索引需要是一个整数,它不允许浮点数或双精度数,所以我使用长数据类型作为索引,它给出了错误。而当我使用 byte 和 short 和 Int 时,它起作用了。我想知道,因为错误是“从 long 到 int 的可能有损转换” 是否只允许在索引中使用 int 并且由于 byte 和 short 的大小很小,这就是它起作用的原因(自动提升)并且 long 大于 int 所以它给出了错误(没有自动降级)plz帮助
import Java.util.*;
class Demo{
public static void main(String args[]){
long n=5;
int a[]=new int[n]; //error possible lossy conversion from long to int
System.out.println(Arrays.toString(a));
}
}
【问题讨论】:
-
是的,你是对的;只有整数可用作数组索引,
byte和short可以自动提升为int。 -
long是 8 个字节,因此如果有超过 4 个字节的信息,则在转换为 4 字节int时会丢失该信息。因此lossy conversion.
标签: java