必须是数组类型,但已解析为Array_two

时间:2018-04-25 06:39:10

标签: java

每次我在我的程序中键入这样的内容时,我会在i和j的位置出现错误。错误是这个问题的标题。

retArr[i][j] = a[i][j] + b[i][j];

生病给你们这个课程的开头部分,这样你就可以看到我想要做什么了。

public class Array_two {
    public int rows;
    public int cols;
    public int[][] values;

    Array_two(int rows, int cols) {
        this.rows = rows;
        this.cols = cols;
        values = new int[rows][cols];
    }

    public Array_two Add(Array_two a, Array_two b) {
        int rsz = a.rows;
        int clz = a.cols;
        int[][] retArr = new int[rsz][clz];
        for (int i = 0; i < rsz; i++) {
            for (int j = 0; j < clz; j++) {
                retArr[i][j] = a[i][j] + b[i][j];
            }
        }
        Array_two ret = new Array_two(rsz, clz);
        ret.values = retArr;
        return ret;
    }

2 个答案:

答案 0 :(得分:0)

[]语法只能与数组一起使用。 Array_two不是数组类型,因此无法使用[]

我认为你的意思是

ret[i][j] = a.values[i][j] + b.values[i][j];

values 是一个数组,因此您可以使用[]访问其元素。

其他提示:

您可能不应该公开所有字段。创建getter和setter。

类以PascalCase命名,因此ArrayTwo而不是Array_two

方法以camelCase命名,因此add而不是Add

Add方法应该是static

答案 1 :(得分:0)

switchButton.post(new Runnable() {
            @Override
            public void run() {
                if(Common.punchedIn) {
                    switchButton.setChecked(false);
                }
                else {
                    switchButton.setChecked(true);
                }
            }
        });