Java 为什么要获取ArrayIndexOutofBounds异常:长度为0的索引0超出范围?

Java 为什么要获取ArrayIndexOutofBounds异常:长度为0的索引0超出范围?,java,arrays,indexoutofboundsexception,Java,Arrays,Indexoutofboundsexception,我在线程“main”java.lang.ArrayIndexOutOfBoundsException中保留了一个错误“Exception:索引0超出长度0的界限”,即使我在方法中引用了此数组界限 `public class USCrimeLibrary public static void main(String[] args) { Scanner scan = new Scanner(System.in); USCrimeObject crimeObject = new

我在线程“main”java.lang.ArrayIndexOutOfBoundsException中保留了一个错误“Exception:索引0超出长度0的界限”,即使我在方法中引用了此数组界限

`public class USCrimeLibrary  

 public static void main(String[] args) {
    Scanner scan = new Scanner(System.in);
    USCrimeObject crimeObject = new USCrimeObject(args[0]); `
以及参考对象:

`public class USCrimeObject {
private Crime[] crimes;
String fileName = "/Users/jpl/Developer/Java/CMIS141/WK8/Crime.csv"; 
public USCrimeObject(String fileName) {
this.crimes = new Crime[20];
readFile(fileName);
}`

首先,在运行程序时必须传递一个参数

但是从你的代码来看,我认为在你的代码中稍加修改就可以使它在运行程序时无需传递参数即可执行

将构造函数
USCrimeObject
更改为

public USCrimeObject() {
this.crimes = new Crime[20];
readFile(fileName);
}
并从主类创建
USCrimeObject
,不带参数

USCrimeObject crimeObject = new USCrimeObject(); 

您必须传递参数才能使用参数。如何运行代码?我使用MS visual Studio代码。输出到终端。我试图输出到调试器,但错误:错误:LinkageError在加载主类USCrimeLibrary java.lang.UnsupportedClassVersionError:USCrimeLibrary(类文件版本55.65535)时使用不受支持的预览功能编译。此版本的Java运行时仅识别56.65535版类文件的预览功能,感谢您的深入了解。由于某种原因,我无法在MS Visual Studio代码上实现这一点