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

Possible lossy conversion from long to int, JAVA

我正在尝试将 long 值传递给该方法并在那里使用它来创建一个 Long 数组。然而, 创建数组

时出现 "possible lossy conversion from long to 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 关于数组中变量的说明

they are referenced by array access expressions that use non-negative integer index values.