数组不会从引用更新

时间:2016-12-11 21:36:06

标签: java

变量line增加后,row数组不会更新。

private int col = 5;
private int row = 0;

// The array should update according to this defintion
public int [][] line ={{col,row},{col,row+1},{col,row+2},{col,row+3}};

public void drop(){
    Timer timer = new Timer();
    TimerTask drop = new TimerTask() {
        @Override
        public void run() {
            canDrop();
            row++;
            System.out.println(line[0][1]);
            repaint();
        }
    };
    timer.scheduleAtFixedRate(drop,100,500);
}

此代码应该输出较慢的行,但我得到的是零行:

1
2
3
...

1 个答案:

答案 0 :(得分:0)

据我了解您的问题,您希望方便地更新line数组。但是,当您递增row时,它不会影响您的数组。这条线

int [][] line ={{col,row},{col,row+1},{col,row+2},{col,row+3}};

创建一个数组并复制colrow,但它不会将引用存储到您的初始变量{{ 1}}和col,以便您只需更改其值即可更新它们。

只需创建另一个功能:

row

然后在// Updates row in the line array like in your initial definition public void updateRowInLine(int[][] line, int row) { for (int i = 0; i < 4; i++) { line[i][1] = row + i; } } 之后调用它,例如row++