Java中如何实例化二维数组并传递给构造方法?编译报错求助
问题解决:实例化ThreadOperation时的二维数组传递错误
你报错的原因很直接:实例化构造方法时,你传递了数组类型int[][],但构造方法需要的是实际的二维数组对象,不是类型声明。
正确的写法分两种情况:
- 情况1:先创建数组对象再传递(适合后续要复用数组的场景)
// 先初始化两个二维数组作为占位符,可按需修改数组大小 int[][] arrayA = new int[2][2]; int[][] arrayB = new int[3][3]; // 实例化对象 ThreadOperation T1 = new ThreadOperation(arrayA, arrayB, Quadrants.TopLeft);
- 情况2:直接在构造调用中创建匿名空数组(纯占位符场景,最省事)
// new int[0][0]是一个空的二维数组,完全能作为占位符通过编译 ThreadOperation T1 = new ThreadOperation(new int[0][0], new int[0][0], Quadrants.TopLeft);
为什么原来的写法会报错?
你写的int[][]是类型标识符,不是实际的对象。Java编译器误以为你想传递类字面量(比如int[][].class),但构造方法需要的是int[][]类型的实例对象,所以才会提示'.class' expected——本质是你传递的东西和构造方法要求的参数类型不匹配。
内容的提问来源于stack exchange,提问作者turtlered9
相关产品推荐
相关产品推荐

