我正在try 绘制和初始化2d数组,当我的所有代码都在main方法中时,并没有错误,但我将代码拆分为方法,并且出现了索引错误.

这是我的方法:

public static void initializeTable(char[][] table ) {

    for (int i = 0; i < row; i++) {
        for (int j = 0; j < column; j++) {
             table[i][j] = 'S';   //this is line 90 where the error occurs i think.
        }
    }
}

主要使用方法:

    public class Cinema {
    public static int row, column,x,y;

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        char[][] table = new char[row][column];

        enterRowColumn();
        initializeTable(table); //line 15
    }
}

和错误消息:

    Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: Index 0 out of bounds for length 0
    at cinema.Cinema.initializeTable(Cinema.java:90)
    at cinema.Cinema.main(Cinema.java:15)

推荐答案

基本体数字的默认值为0.

public static int row, column,x,y;

这些都初始化为零.然后创建数组

char[][] table = new char[row][column];

在指定其他值之前,数组看起来像char[0][0].

移动数组初始化after,将值指定给rowcolumn

Java相关问答推荐

编译期间错误(Java 0000)Android .Net MAUI

try Dockerize Maven应用程序,但发布版本21不支持"

Java 22模式匹配不适用于记录模式匹配.给出汇编问题

为什么接口中的主函数而不是类中的主函数在Java 17中编译和运行没有问题?

如何使用Java API在Oracle ODI中运行模拟?

如何转换Tue Feb 27 2024 16:35:30 GMT +0800 String至ZonedDateTime类型""

Spring Boot 3.2.2中的@Inject和@Resource Remove

只需最少的代码更改即可将版本号标记添加到日志(log)

SpringBoot+Java 17@Valid未验证POJO

try 判断可选参数是否为空时出现空类型安全警告

测试何时使用Mockito强制转换对象会导致ClassCastException

通过Spring Security公开Spring Boot执行器端点

Domino Designer 14中的保存代理添加了重影库

扩展视图高度,并将其拖动到较低的视图上,而不是将其向下推?

使用htmlunit和java单击按钮

Cordova Android Gradle内部版本组件不兼容

为什么这种递归会有这样的行为?

RestTemplate Bean提供OkHttp3ClientHttpRequestFactory不支持Spring Boot 3中的请求正文缓冲

如何使用java区分以下结果

Swagger.io OpenApi v3.0 声明默认媒体类型