You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 00:05:10