当调用方法时参数与方法类中的格式完全相同时参数不兼容

我正在尝试在需要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;

    }


慕莱坞森
浏览 120回答 3
3回答

暮色呼如

在定义方法时使用数据类型,但在调用方法时不使用。调用方法时,您只需向其传递该类型的参数:Utils.printTransitionTable(table);这假设某处(未在您的方法中显示,因此可能在类级别)您有一个名为的变量,&nbsp;table该变量是int[][][]您传递给此方法调用的类型。

摇曳的蔷薇

问题很简单。您要做的是将局部变量声明传递给该printTransitionTable方法。您需要正确声明和初始化table变量。static void printTableOf(final FSAe A)&nbsp; {&nbsp; &nbsp; final int[][][] table = Utils.transitionTable(A);&nbsp; &nbsp; Utils.printTransitionTable(table);}仅据您所知,::语法是表示method reference(文档)。

陪伴而非守候

试试这个Utils.printTransitionTable(table);而不是Utils.printTransitionTable(int[][][] table);
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java