внутренний класс non -конечная переменная java

Мне нужно было изменить переменные внутри внутреннего класса, и я получил печально известную ошибку «Не могу ссылаться на переменную non -final внутри внутреннего класса, определенного в другом методе».

void onStart(){
  bt.setOnClickListener(new View.OnClickListener() {
     public void onClick(View v) {
       int q = i;
     }
  });
}

Я быстро создал класс, содержащий все, что я хотел изменить, и сделал окончательную версию класса вне внутреннего класса

class temp{
  int q;
}

void onStart(){
  final temp x = new temp();
  bt.setOnClickListener(new View.OnClickListener() {
     public void onClick(View v) {
       x.q = i;
     }
  });
}

. Кажется, это то, что мне нужно, и это работает, но мне интересно, как правильно решить проблему. Кроме того, я действительно ненавижу использовать слово tempв названии своего класса. Есть ли реальный термин программирования для того, что я сделал, чтобы я сделал более описательное имя для своего класса?

8
задан Aaron Greenberg 3 July 2012 в 18:26
поделиться