我正在嘗試在需要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
提交
取消