0

thistime[] をクラスに渡し、それを使用して 2 つの四角形の幅と高さを定義しようとしています。これは初期コードの単純化されたバージョンであり、トークン "]" でエラー構文エラーが発生します。このトークンの後に VariableDeclaratorld が必要です" 、ここに私のコードがあります:

ArrayList textlines;

int xpos=20;
int ypos=20;
int[]thistime = new int[2];

void setup() {
  size(1200, 768);
  textlines = new ArrayList();
  thistime[0] =3;
  thistime[1] =30;
}

void draw() {
}


void mousePressed() {
  textlines.add(new Line(xpos, ypos,thistime));
  for (int i=0; i<textlines.size(); i++) {

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


class Line {

  int x;
  int y;
  int thatimee[];

  Line(int xpo, int ypo, int thetimee[]) {
    x =xpo;
    y =ypo;
    thatimee[]= new int[thetimee.length];
    thatimee[0]=thetimee[0];
    thatimee[1]=thetimee[1];
  }

  void display() {
    fill(50, 50, 50);
    rect(random(width), random(height), thatimee[0],thatimee[0] );
    rect(random(width), random(height), thatimee[1], thatimee[1]);
  }
}

エラーは行にあります

thatimee[]= new int[thetimee.length];

その理由を誰が知っていますか?

4

4 に答える 4

2

割り当ての [] を削除してみてください。このような:

thattimee = new int[thetimee.length];
于 2013-06-23T02:29:08.963 に答える
2

ただ使う

thatimee = new int[thetimee.length];

[] は配列を宣言するためのものです。初期化中は使用しないでください。

于 2013-06-23T02:29:27.543 に答える
2

thatimee[]配列の初期化時に置くことはできません。あなたは単に置く:

thatimee = new int[thetimee.length];

thatimeeは配列のハンドルを表し、ハンドルに何かを格納しています。

于 2013-06-23T02:30:17.793 に答える
2
Line(int xpo, int ypo, int thetimee[]) {
    x = xpo;
    y = ypo;
    thatimee = new int[thetimee.length];
    thatimee[0] = thetimee[0];
    thatimee[1] = thetimee[1]; 
}

変数「thatimee」を配列として宣言済みです。変数を初期化するときに、Line のスコープ内の「[]」を削除します。

于 2013-06-23T03:56:18.507 に答える