小编Aar*_*erg的帖子

内部类非最终变量java

我需要更改内部类中的变量,并且我得到了臭名昭着的"不能引用在不同方法中定义的内部类中的非final变量"错误.

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

我很快创建了一个包含我想要改变的所有内容的类,并在内部类之外创建了类的最终版本

class temp{
  int q;
}

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

这似乎是我需要的,它的工作原理,但我想知道这是如何正确解决问题.另外,我真的很讨厌使用这个词temp来命名我的课程.是否有一个实际的编程术语,以便我为我的课程创建一个更具描述性的名称?

java final local-variables inner-classes

8
推荐指数
1
解决办法
3691
查看次数

标签 统计

final ×1

inner-classes ×1

java ×1

local-variables ×1