我正在尝试在需要int[][][] table作为参数的不同类中使用方法,但是当我输入参数时它不会编译并说该方法不适用于该类型int[][][]::table但没有“ ::”我不确定在哪里这来自。这是我试图调用该方法的部分static void printTableOf(FSAe A) { Utils.printTransitionTable(int[][][] table);}这是 utils 类文件中的方法:static void printTransitionTable(int[][][] table){ if (table.length == 0) return; int columns = table[0].length; String[] labels = new String[columns]; for (int i=0; i<labels.length; i++) { if (i == columns-1) labels[i] = "eps"; else labels[i] = i+""; }编辑:这是初始化表的方法:static int[][][] transitionTable(FSAe A) { int[][][] table = new int[A.numStates][A.alphabetSize+1][0]; for (int i=0; i<A.delta.length; i++) { int[] t = A.delta[i]; if (t[1] > -1) { Utils.updateTable(table, t[0], t[1], t[2]); } else { Utils.updateTable(table, t[0], t[2], t[4]); } } return table; }
3 回答
暮色呼如
TA贡献1853条经验 获得超9个赞
在定义方法时使用数据类型,但在调用方法时不使用。调用方法时,您只需向其传递该类型的参数:
Utils.printTransitionTable(table);
这假设某处(未在您的方法中显示,因此可能在类级别)您有一个名为的变量, table
该变量是int[][][]
您传递给此方法调用的类型。
摇曳的蔷薇
TA贡献1793条经验 获得超6个赞
问题很简单。您要做的是将局部变量声明传递给该printTransitionTable方法。您需要正确声明和初始化table变量。
static void printTableOf(final FSAe A) {
final int[][][] table = Utils.transitionTable(A);
Utils.printTransitionTable(table);
}
仅据您所知,::语法是表示method reference(文档)。
陪伴而非守候
TA贡献1757条经验 获得超8个赞
试试这个Utils.printTransitionTable(table);
而不是Utils.printTransitionTable(int[][][] table);
添加回答
举报
0/150
提交
取消