令牌“[”上的语法错误,此令牌后预期的表达式

时间:2013-06-26 03:20:10

标签: java arrays processing

randomsize是一个我希望传递给Line类中显示函数的数组,每当我调用p.display(randomsize[])时,我希望它会将值传递给display函数。显然还有其他方法可以使这项工作,只是好奇为什么会发生错误?

ArrayList textlines;

int xpos=20;
int ypos=20;
int[]randomsize = new int[4];

void setup() {
  size(1200, 768);
  textlines = new ArrayList();
  randomsize[0]=10;
  randomsize[1]=15;
  randomsize[2]=20;
  randomsize[3]=25;
}

void draw() {
  background(100, 100, 100);

  for (int i=0; i<textlines.size(); i++) {

    Line p=(Line)textlines.get(i);
    p.display(randomsize[]);
  }
}


void mousePressed() {
  textlines.add(new Line(xpos, ypos, thistime));
}


class Line {

  int x;
  int y;

  Line(int xpo, int ypo) {
    x =xpo;
    y =ypo;
  }

  void display(int therandom[]) {
    fill(50, 50, 50);
    rect(width/2, height/2, therandom[0], thatimee[0] );
    rect(width/2, height/3, therandom[1], thatimee[1]);
  }
}

3 个答案:

答案 0 :(得分:3)

不要将randomsize[]传递给display(),不要将randomsize传递给括号。

答案 1 :(得分:0)

void draw() {
  background(100, 100, 100);

  for (int i=0; i<textlines.size(); i++) {

    Line p=(Line)textlines.get(i);
    p.display(randomsize); // Remove the brackets from randomsize in the scope of the method draw().
  }
}

答案 2 :(得分:0)

这是错误的

p.display(randomsize[]);


void display(int therandom[]) { //here input argument should be an integer array
fill(50, 50, 50);
rect(width/2, height/2, therandom[0], thatimee[0] );
rect(width/2, height/3, therandom[1], thatimee[1]);
}

然后你可以简单地按如下方式调用该方法

p.display(randomsize);