/ private static final
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
long arraySize=10_000_000L;
// TODO code application logic here
Long[] largeArray = new Long[10000000];// compiles OK
Long[] myIntArray = new Long[arraySize];// compile error
}
有人可以帮助我理解为什么我会收到此编译器错误。 "错误:不兼容的类型:可能从long转换为int"
答案 0 :(得分:0)
您无法初始化长尺寸的数组。您只能使用满足以下内容的整数 n 实现数组:
0 <= n <= Integer.MAX_VALUE
请参阅Java SE specification > Array Access.
所有数组都是0原点。长度为n的数组可以被索引 整数0到n-1。
数组必须用int值索引; short,byte或char值可以 也可以用作索引值,因为它们是一元的 数字促销(§5.6.1)并成为int值。
尝试访问具有长索引值的数组组件 导致编译时错误。
答案 1 :(得分:0)
“数组必须用int值索引...尝试访问具有长索引值的数组组件会导致编译时错误。” ---维基百科https://en.wikipedia.org/wiki/Criticism_of_Java#Large_arrays