Possible lossy conversion from long to int, JAVA

2019-01-20 11:41发布

问题:

I am trying to pass long value to the method and use it there to create a Long Array. However, I am getting "possible lossy conversion from long to int" error while creating an array

long[] array = new long[n];

although I have not used any integers values.

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;
  }
}

回答1:

Array dimensions can only be int types. The compiler is expecting that type but you are passing in a long type. You could change the argument type being passed in to an int and the make the corresponding changes.

For completeness, here is what the JLS says about variables in an array

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