Мне нужно было изменить переменные внутри внутреннего класса, и я получил печально известную ошибку «Не могу ссылаться на переменную 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
в названии своего класса. Есть ли реальный термин программирования для того, что я сделал, чтобы я сделал более описательное имя для своего класса?