0

例如:

for (int i = 0; i < 10; i++){
   SomeClass something = new SomeClass();
   something.setOnClickListener(new OnClickListener() {
      public void onClick(){
         doSomething(i);
      }
   });
}

我不允许使用变量i,Eclipse 建议我制作i final,但我不能这样做,因为我需要它来迭代对吗?

4

2 回答 2

6

复制ifinal循环体中的变量。

for (int i = 0; i < 10; i++){
   final int j = i;
   SomeClass something = new SomeClass();
   something.setOnClickListener(new OnClickListener() {
      public void onClick(){
         doSomething(j);
      }
   });
}
于 2013-11-09T06:21:14.637 回答
1

你可以做

loop with i
  final int k = i
  annonymousClass
于 2013-11-09T06:22:26.700 回答