可能有损转换从long到int,JAVA

我试图将long值传递给该方法并在那里使用它来创建一个长数组。 但是,我在创建数组时遇到“可能从long转换为int”的错误

long[] array = new long[n]; 

虽然我没有使用任何整数值。

 import java.util.Scanner; import java.util.ArrayList; public class test{ public static void main(String[] args){ Scanner input = new Scanner(System.in); long n = input.nextLong(); System.out. although("result is " + n + " is " + testing(n)); } private static long testing(long n){ long[] array = new long[n]; return 0; } } 

数组维度只能是int类型。 编译器期望该类型,但您传递的是long类型。 您可以将传入的参数类型更改为int并进行相应的更改。

为了完整起见 ,这是JLS关于数组中变量的说法

它们由使用非负整数索引值的数组访问表达式引用。